home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -in_the_mag- / basics / amos / jdlib4_6.lha / APSystem / |jd.s next >
Text File  |  2008-12-07  |  120KB  |  6,691 lines

  1. ;---------------------------------------------------------------------
  2. ;    **    **   **   ***    ***     ****      **     ***   **   ****
  3. ;   ****   *** ***  ** **  **       ** **    ****   **     **  **  **
  4. ;  **  **  ** * **  ** **   ***     *****   **  **   ***   **  **
  5. ;  ******  **   **  ** **     **    **  **  ******     **  **  **
  6. ;  **  **  **   **  ** **  *  **    ** **   **  **  *  **  **  **  **
  7. ;  **  **  **   **   ***    ***     *****   **  **   ***   **   ****
  8. ;---------------------------------------------------------------------
  9. ; JD extension source code, V4.6  Last change 12.07.1993
  10. ; By Joerg Dommermuth
  11. ; AMOS and AMOS Compiler (c) Europress Software 1991
  12. ; To be used with AMOSPro V1.12 and over
  13. ;--------------------------------------------------------------------- 
  14. ; This file is public domain
  15. ;---------------------------------------------------------------------
  16.  
  17.  
  18. ExtNb    equ    22-1
  19.  
  20. Version    MACRO
  21.     dc.b    "4.6"
  22.     ENDM
  23.  
  24.     Incdir    "dh0:AMOS_Pro/Tutorial/Extensions/"
  25.      Include    "|AMOS_Includes.s"
  26.  
  27. p1_jbuffer    equ    0
  28. p2_jbuffer    equ    520
  29. paste_jbuffer    equ    1040
  30. bb        equ    1560
  31. tracks        equ    2072
  32.  
  33.  
  34. Start:    dc.l    C_Tk-C_Off
  35.     dc.l    C_Lib-C_Tk
  36.     dc.l    C_Title-C_Lib
  37.     dc.l    C_End-C_Title
  38.     dc.w    0    
  39.  
  40. C_Off:    dc.w    (L1-L0)/2,(L2-L1)/2,(L3-L2)/2,(L4-L3)/2
  41.     dc.w    (L5-L4)/2,(L6-L5)/2,(L7-L6)/2,(L8-L7)/2
  42.     dc.w    (L9-L8)/2,(L10-L9)/2,(L11-L10)/2,(L12-L11)/2
  43.     dc.w    (L13-L12)/2,(L14-L13)/2,(L15-L14)/2,(L16-L15)/2
  44.     dc.w    (L17-L16)/2,(L18-L17)/2,(L19-L18)/2,(L20-L19)/2
  45.     dc.w    (L21-L20)/2,(L22-L21)/2,(L23-L22)/2,(L24-L23)/2
  46.     dc.w    (L25-L24)/2,(L26-L25)/2,(L27-L26)/2,(L28-L27)/2
  47.     dc.w    (L29-L28)/2,(L30-L29)/2,(L31-L30)/2,(L32-L31)/2
  48.     dc.w    (L33-L32)/2,(L34-L33)/2,(L35-L34)/2,(L36-L35)/2
  49.     dc.w    (L37-L36)/2,(L38-L37)/2,(L39-L38)/2,(L40-L39)/2
  50.     dc.w    (L41-L40)/2,(L42-L41)/2,(L43-L42)/2,(L44-L43)/2
  51.     dc.w    (L45-L44)/2,(L46-L45)/2,(L47-L46)/2,(L48-L47)/2
  52.     dc.w    (L49-L48)/2,(L50-L49)/2,(L51-L50)/2,(L52-L51)/2
  53.     dc.w    (L53-L52)/2,(L54-L53)/2,(L55-L54)/2,(L56-L55)/2
  54.     dc.w    (L57-L56)/2,(L58-L57)/2,(L59-L58)/2,(L60-L59)/2
  55.     dc.w    (L61-L60)/2,(L62-L61)/2,(L63-L62)/2,(L64-L63)/2
  56.     dc.w    (L65-L64)/2,(L66-L65)/2,(L67-L66)/2,(L68-L67)/2
  57.     dc.w    (L69-L68)/2,(L70-L69)/2,(L71-L70)/2,(L72-L71)/2
  58.     dc.w    (L73-L72)/2,(L74-L73)/2,(L75-L74)/2,(L76-L75)/2
  59.     dc.w    (L77-L76)/2,(L78-L77)/2,(L79-L78)/2,(L80-L79)/2
  60.     dc.w    (L81-L80)/2,(L82-L81)/2,(L83-L82)/2,(L84-L83)/2
  61.     dc.w    (L85-L84)/2,(L86-L85)/2,(L87-L86)/2,(L88-L87)/2
  62.     dc.w    (L89-L88)/2,(L90-L89)/2,(L91-L90)/2,(L92-L91)/2
  63.     dc.w    (L93-L92)/2,(L94-L93)/2,(L95-L94)/2,(L96-L95)/2
  64.     dc.w    (L97-L96)/2,(L98-L97)/2,(L99-L98)/2,(L100-L99)/2
  65.     dc.w    (L101-L100)/2,(L102-L101)/2,(L103-L102)/2
  66.     dc.w    (L104-L103)/2,(L105-L104)/2,(L106-L105)/2
  67.     dc.w    (L107-L106)/2,(L108-L107)/2,(L109-L108)/2
  68.     dc.w    (L110-L109)/2,(L111-L110)/2,(L112-L111)/2
  69.     dc.w    (L113-L112)/2,(L114-L113)/2,(L115-L114)/2
  70.     dc.w    (L116-L115)/2,(L117-L116)/2,(L118-L117)/2
  71.     dc.w    (L119-L118)/2,(L120-L119)/2,(L121-L120)/2
  72.     dc.w    (L122-L121)/2,(L123-L122)/2,(L124-L123)/2
  73.     dc.w    (L125-L124)/2,(L126-L125)/2,(L127-L126)/2
  74.     dc.w    (L128-L127)/2,(L129-L128)/2,(L130-L129)/2
  75.     dc.w    (L131-L130)/2,(L132-L131)/2,(L133-L132)/2
  76.     dc.w    (L134-L133)/2,(L135-L134)/2,(L136-L135)/2
  77.     dc.w    (L137-L136)/2,(L138-L137)/2,(L139-L138)/2
  78.     dc.w    (L140-L139)/2,(L141-L140)/2,(L142-L141)/2
  79.     dc.w    (L143-L142)/2,(L144-L143)/2,(L145-L144)/2
  80.     dc.w    (L146-L145)/2,(L147-L146)/2,(L148-L147)/2
  81.     dc.w    (L149-L148)/2,(L150-L149)/2,(L151-L150)/2
  82.     dc.w    (L152-L151)/2,(L153-L152)/2,(L154-L153)/2
  83.     dc.w    (L155-L154)/2,(L156-L155)/2,(L157-L156)/2
  84.  
  85. C_Tk:    dc.w     1,0
  86.     dc.b     $80,-1
  87.  
  88.     dc.w    -1,L_Pm
  89.     dc.b    "jd compar","e"+$80,"02,2",-1
  90.     dc.w    L_sc,-1
  91.     dc.b    "jd setcloc","k"+$80,"I2",-1
  92.     dc.w    L_sd,-1
  93.     dc.b    "jd setdat","e"+$80,"I2",-1
  94.     dc.w    -1,L_Zeit
  95.     dc.b    "jd time","$"+$80,"2",-1
  96.     dc.w    -1,L_Datum
  97.     dc.b    "jd date","$"+$80,"2",-1
  98.     dc.w    -1,L_cou
  99.     dc.b    "jd coun","t"+$80,"02,2",-1
  100.     dc.w    -1,L_pa
  101.     dc.b    "jd paste","$"+$80,"22,2,2",-1
  102.     dc.w    -1,L_lim
  103.     dc.b    "jd limi","t"+$80,"00,0,0",-1
  104.     dc.w    -1,L_bp
  105.     dc.b    "jd screen plane","s"+$80,"0",-1
  106.     dc.w    -1,L_rez
  107.     dc.b    "jd screen resolutio","n"+$80,"0",-1
  108.     dc.w    -1,L_chc
  109.     dc.b    "jd change","$"+$80,"22",-1
  110.     dc.w    -1,L_fup
  111.     dc.b    "jd firstup","$"+$80,"22",-1
  112.     dc.w    -1,L_ubl
  113.     dc.b    "jd skip","$"+$80,"22",-1
  114.     dc.w    -1,L_cd
  115.     dc.b    "jd crypt","$"+$80,"22",-1
  116.     dc.w    -1,L_dcd
  117.     dc.b    "jd encrypt","$"+$80,"22",-1
  118.     dc.w    -1,L_ext
  119.     dc.b    "jd extend","$"+$80,"22,0,0",-1
  120.     dc.w    -1,L_exv1
  121.     dc.b    "!jd exval","$"+$80,"20,0,2",-2
  122.     dc.w    -1,L_exv
  123.     dc.b    $80,"20,0",-1
  124.     dc.w    L_geta,-1
  125.     dc.b    "jd get are",$80+"a","I2",-1
  126.     dc.w    L_resa,-1
  127.     dc.b    "jd reset are",$80+"a","I",-1
  128.     dc.w    L_drang,-1
  129.     dc.b    "jd draw angl",$80+"e","I0,0,0,0",-1
  130.     dc.w    -1,L_afirst
  131.     dc.b    "jd area firs","t"+$80,"0",-1
  132.     dc.w    -1,L_alast
  133.     dc.b    "jd area las","t"+$80,"0",-1
  134.     dc.w    -1,L_mwait
  135.     dc.b    "jd mwai","t"+$80,"0",-1
  136.     dc.w    -1,L_twait
  137.     dc.b    "jd keywai","t"+$80,"02",-1
  138.     dc.w    -1,L_zahl
  139.     dc.b    "jd get numbe","r"+$80,"00,0",-1
  140.     dc.w    -1,L_rp
  141.     dc.b    "jd rastpor","t"+$80,"0",-1
  142.     dc.w    -1,L_cut
  143.     dc.b    "jd cut","$"+$80,"22,0,0",-1
  144.     dc.w    -1,L_ins
  145.     dc.b    "jd insert","$"+$80,"22,0,2",-1
  146.     dc.w    L_dc,-1
  147.     dc.b    "jd diskchang","e"+$80,"I",-1
  148.     dc.w    -1,L_tam
  149.     dc.b    "jd wait amig","a"+$80,"0",-1
  150.     dc.w    -1,L_gets
  151.     dc.b    "jd get string","$"+$80,"22,0",-1
  152.     dc.w    L_we,-1
  153.     dc.b    "jd wait even","t"+$80,"I",-1
  154.     dc.w    L_spr,-1
  155.     dc.b    "jd sprea","d"+$80,"I2,0,0",-1
  156.     dc.w    L_ts,-1
  157.     dc.b    "jd tscrol","l"+$80,"I2,0,0",-1
  158.     dc.w    -1,L_rors
  159.     dc.b    "jd ror","$"+$80,"22",-1
  160.     dc.w    -1,L_rols
  161.     dc.b    "jd rol","$"+$80,"22",-1
  162.     dc.w    -1,L_rsec
  163.     dc.b    "jd read secto","r"+$80,"20,0",-1
  164.     dc.w    -1,L_wsec
  165.     dc.b    "jd write secto","r"+$80,"02,0,0",-1
  166.     dc.w    -1,L_dcon
  167.     dc.b    "jd dump","$"+$80,"22",-1
  168.     dc.w    -1,L_chksum
  169.     dc.b    "jd checksu","m"+$80,"02",-1
  170.     dc.w    -1,L_bchksum
  171.     dc.b    "jd bootchecksu","m"+$80,"02",-1
  172.     dc.w    -1,L_odd
  173.     dc.b    "jd od","d"+$80,"00",-1
  174.     dc.w    -1,L_oct
  175.     dc.b    "!jd oct","$"+$80,"20",-2
  176.     dc.w    -1,L_oct2
  177.     dc.b    $80,"20,0",-1
  178.     dc.w    -1,L_per
  179.     dc.b    "jd percen","t"+$80,"00,0",-1
  180.     dc.w    -1,L_deoc
  181.     dc.b    "jd deoc","t"+$80,"02",-1
  182.     dc.w    L_hd,-1
  183.     dc.b    "jd hexdum","p"+$80,"I0,0,0,0",-1
  184.     dc.w    L_type,-1
  185.     dc.b    "jd typ","e"+$80,"I2,0,0",-1
  186.     dc.w    -1,L_cdate
  187.     dc.b    "jd actual date","$"+$80,"22,2",-1
  188.     dc.w    -1,L_ctime
  189.     dc.b    "jd actual time","$"+$80,"22,2",-1
  190.     dc.w    L_reset,-1
  191.     dc.b    "jd rese","t"+$80,"I",-1
  192.     dc.w    -1,L_getk
  193.     dc.b    "jd keypres","s"+$80,"0",-1
  194.     dc.w    -1,L_rol
  195.     dc.b    "jd ro","l"+$80,"00,0",-1
  196.     dc.w    -1,L_ror
  197.     dc.b    "jd ro","r"+$80,"00,0",-1
  198.     dc.w    -1,L_roxl
  199.     dc.b    "jd rox","l"+$80,"00,0",-1
  200.     dc.w    -1,L_roxr
  201.     dc.b    "jd rox","r"+$80,"00,0",-1
  202.     dc.w    -1,L_lsl
  203.     dc.b    "jd ls","l"+$80,"00,0",-1
  204.     dc.w    -1,L_lsr
  205.     dc.b    "jd ls","r"+$80,"00,0",-1
  206.     dc.w    -1,L_asl
  207.     dc.b    "jd as","l"+$80,"00,0",-1
  208.     dc.w    -1,L_asr
  209.     dc.b    "jd as","r"+$80,"00,0",-1
  210.     dc.w    -1,L_hw
  211.     dc.b    "jd hardware","$"+$80,"2",-1
  212.     dc.w    -1,L_vol
  213.     dc.b    "jd volume","$"+$80,"2",-1
  214.     dc.w    -1,L_logic
  215.     dc.b    "jd logical","$"+$80,"2",-1
  216.     dc.w    -1,L_charx
  217.     dc.b    "jd char ","x"+$80,"0",-1
  218.     dc.w    -1,L_chary
  219.     dc.b    "jd char ","y"+$80,"0",-1
  220.     dc.w    L_slidx,-1
  221.     dc.b    "jd slide ","x"+$80,"I0t0",-1
  222.     dc.w    L_slidy,-1
  223.     dc.b    "jd slide ","y"+$80,"I0t0",-1
  224.     dc.w    L_slidl,-1
  225.     dc.b    "jd slide lef","t"+$80,"I0t0",-1
  226.     dc.w    L_slidr,-1
  227.     dc.b    "jd slide righ","t"+$80,"I0t0",-1
  228.     dc.w    L_slidu,-1
  229.     dc.b    "jd slide u","p"+$80,"I0t0",-1
  230.     dc.w    L_slidd,-1
  231.     dc.b    "jd slide dow","n"+$80,"I0t0",-1
  232.     dc.w    -1,L_install
  233.     dc.b    "jd instal","l"+$80,"00",-1
  234.     dc.w    -1,L_format
  235.     dc.b    "jd forma","t"+$80,"00,2",-1
  236.     dc.w    -1,L_fcopy
  237.     dc.b    "jd cop","y"+$80,"02,2",-1
  238.     dc.w    L_relab,-1
  239.     dc.b    "jd relabe","l"+$80,"I0,2",-1
  240.     dc.w    -1,L_sformat
  241.     dc.b    "jd shortforma","t"+$80,"00,2",-1
  242.     dc.w    L_squa,-1
  243.     dc.b    "jd squas","h"+$80,"I2,0,0",-1
  244.     dc.w    L_scon,-1
  245.     dc.b    "jd video o","n"+$80,"I",-1
  246.     dc.w    L_scoff,-1
  247.     dc.b    "jd video of","f"+$80,"I",-1
  248.     dc.w    -1,L_lcf
  249.     dc.b    "jd largest chip fre","e"+$80,"0",-1
  250.     dc.w    -1,L_lff
  251.     dc.b    "jd largest fast fre","e"+$80,"0",-1
  252.     dc.w    -1,L_fsize
  253.     dc.b    "jd file siz","e"+$80,"02",-1
  254.     dc.w    -1,L_ftype
  255.     dc.b    "jd file typ","e"+$80,"02",-1
  256.     dc.w    -1,L_ppmem
  257.     dc.b    "jd ppfind me","m"+$80,"00",-1
  258.     dc.w    L_ppdecrunch,-1
  259.     dc.b    "jd ppdecrunc","h"+$80,"I0,0,0",-1
  260.     dc.w    -1,L_stream
  261.     dc.b    "jd stream","$"+$80,"20,0,0",-1
  262.     dc.w    -1,L_fprot
  263.     dc.b    "jd file protectio","n"+$80,"02",-1
  264.     dc.w    -1,L_fcomm
  265.     dc.b    "jd file comment","$"+$80,"22",-1
  266.     dc.w    -1,L_sprot
  267.     dc.b    "jd set protectio","n"+$80,"02,0",-1
  268.     dc.w    -1,L_scomm
  269.     dc.b    "jd set commen","t"+$80,"02,2",-1
  270.     dc.w    L_drawseg,-1
  271.     dc.b    "jd draw segmen","t"+$80,"I0,0,0,0,0,0",-1
  272.     dc.w    -1,L_cp
  273.     dc.b    "jd checkpr","t"+$80,"0",-1
  274.     dc.w    L_spline,-1
  275.     dc.b    "jd splin","e"+$80,"I0,0,0,0,0,0,0",-1
  276.     dc.w    -1,L_linstr
  277.     dc.b    "jd linst","r"+$80,"02,2",-1
  278.     dc.w    -1,L_e
  279.     dc.b    "jd e","#"+$80,"V0",-1
  280.     dc.w    -1,L_imp
  281.     dc.b    "jd im","p"+$80,"00,0",-1
  282.     dc.w    -1,L_eqv
  283.     dc.b    "jd eq","v"+$80,"00,0",-1
  284.     dc.w    -1,L_getsb
  285.     dc.b    "jd intscreen bas","e"+$80,"0",-1
  286.     dc.w    -1,L_getwb
  287.     dc.b    "jd intwindow bas","e"+$80,"0",-1
  288.     dc.w    L_font,-1
  289.     dc.b    "jd textfon","t"+$80,"I2,0",-1
  290.     dc.w    L_print,-1
  291.     dc.b    "jd prin","t"+$80,"I2",-1
  292.     dc.w    -1,L_dist
  293.     dc.b    "jd distanc","e"+$80,"00,0t0,0",-1
  294.     dc.w    -1,L_p
  295.     dc.b    "jd pi","#"+$80,"V0",-1
  296.     dc.w    -1,L_arcus
  297.     dc.b    "jd arcu","s"+$80,"00,0t0,0",-1
  298.     dc.w    -1,L_tts
  299.     dc.b    "jd timesec","s"+$80,"02",-1
  300.     dc.w    -1,L_stt
  301.     dc.b    "jd secstime","$"+$80,"20",-1
  302.     dc.w    -1,L_xpo
  303.     dc.b    "jd x po","s"+$80,"00,0,0,0",-1
  304.     dc.w    -1,L_ypo
  305.     dc.b    "jd y po","s"+$80,"00,0,0,0",-1
  306.     dc.w    L_flush,-1
  307.     dc.b    "jd flus","h"+$80,"I",-1
  308.     dc.w    -1,L_countdirs
  309.     dc.b    "jd count dir","s"+$80,"02",-1
  310.     dc.w    -1,L_countfiles
  311.     dc.b    "jd count file","s"+$80,"02",-1
  312.     dc.w    -1,L_detab
  313.     dc.b    "jd deta","b"+$80,"22,0",-1
  314.     dc.w    -1,L_gtab
  315.     dc.b    "jd get ta","b"+$80,"0",-1
  316.     dc.w    L_private,-1
  317.     dc.b    "jd privat","e"+$80,"I",-1
  318.     dc.w    -1,L_mclick
  319.     dc.b    "jd moff clic","k"+$80,"0",-1
  320.     dc.w    -1,L_mkey
  321.     dc.b    "jd moff ke","y"+$80,"0",-1
  322.     dc.w    L_moff,-1
  323.     dc.b    "jd multi of","f"+$80,"I",-1
  324.     dc.w    L_mon,-1
  325.     dc.b    "jd multi o","n"+$80,"I",-1
  326.     dc.w    -1,L_dclick
  327.     dc.b    "jd double clic","k"+$80,"0",-1
  328.     dc.w    L_dledoff,-1
  329.     dc.b    "jd dled of","f"+$80,"I",-1
  330.     dc.w    L_dledon,-1
  331.     dc.b    "jd dled o","n"+$80,"I",-1
  332.     dc.w    L_reddim,-1
  333.     dc.b    "jd reduce di","m"+$80,"I0,0",-1
  334.     dc.w    L_resdim,-1
  335.     dc.b    "jd reset di","m"+$80,"I0",-1
  336.     dc.w    L_aswap,-1
  337.     dc.b    "jd array swa","p"+$80,"I0,0,0",-1
  338.     dc.w    L_aclear,-1
  339.     dc.b    "jd array$ clea","r"+$80,"I0",-1
  340.     dc.w    L_aclear2,-1
  341.     dc.b    "jd array clea","r"+$80,"I0",-1
  342.     dc.w     0
  343.  
  344.  
  345. C_Lib:
  346.  
  347. ******************************************************************
  348. *        COLD START
  349. *
  350.  
  351. L0    cmp.l    #$41506578,d1
  352.     bne    L0error
  353.     movem.l    a3-a6,-(sp)
  354.     move.l    4,a6
  355.     move.l    #7760,d0
  356.     move.l    #$30004,d1
  357.     jsr    -198(a6)
  358.     tst.l    d0
  359.     beq    startup_error
  360.     lea    memory_buffers(pc),a3
  361.     move.l    d0,(a3)
  362.     lea    reg_a5(pc),a3
  363.     move.l    a5,(a3)
  364.     lea    JD(pc),a3
  365.     move.l    a3,ExtAdr+ExtNb*16(a5)
  366.     lea    JDend(pc),a3
  367.     move.l    a3,ExtAdr+ExtNb*16+8(a5)
  368.     movem.l    (sp)+,a3-a6
  369.     moveq    #ExtNb,d0
  370.     move.w    #$110,d1
  371.     rts
  372. startup_error:
  373.     movem.l    (sp)+,a3-a6
  374. L0error:
  375.     moveq    #-1,d0
  376.     rts
  377. JDend:    movem.l    a3-a6,-(sp)
  378.     lea    memory_buffers(pc),a3
  379.     move.l    (a3),a1
  380.     move.l    #7760,d0
  381.     move.l    4,a6
  382.     jsr    -210(a6)
  383.     movem.l    (sp)+,a3-a6
  384.     rts
  385.  
  386. ; data_area
  387. ;
  388.     cnop    0,4
  389. JD:
  390. reg_a5:    dc.l    0
  391. memory_buffers:
  392.     dc.l    0
  393. rastport:
  394.     dc.l    0
  395. fontname:
  396.     dc.b    'diskfont.library',0
  397.     even
  398. gfxname:
  399.     dc.b    'graphics.library',0
  400.     even
  401. gfxbase:
  402.     dc.l    0
  403. fontbase:
  404.     dc.l    0
  405. font_textattr:
  406.     dc.l    0
  407.     dc.w    0
  408.     dc.b    1,0
  409.     dc.l    4
  410. font_font:
  411.     dc.l    0
  412. fx:    dc.l    8
  413. fy:    dc.l    8
  414. _dy:    ds.l    8
  415. jan:    dc.l    31,28
  416. mar:    dc.l    31,30,31,30,31,31,30,31,30,31,0
  417.     even
  418. tmj2:    ds.b    27
  419.     even
  420. fl:    dc.l    0
  421. stepper    dc.l    0
  422. _step:    dc.l    0
  423. _kx1:    dc.l    0
  424. _ky1:    dc.l    0
  425. _kx2:    dc.l    0
  426. _ky2:    dc.l    0
  427. _kx3:    dc.l    0
  428. _ky3:    dc.l    0
  429. kon1:    dc.l    0
  430. kon2:    dc.l    0
  431. kon3:    dc.l    0
  432. kon4:    dc.l    0
  433. _XS:    dc.l    0
  434. _XS1:    dc.l    0
  435. _XS2:    dc.l    0
  436. _XO:    dc.l    0
  437. _YS:    dc.l    0
  438. _YS1:    dc.l    0
  439. _YS2:    dc.l    0
  440. _YO:    dc.l    0
  441. decathlon:
  442.     dc.l    1000000000
  443.     dc.l    100000000
  444.     dc.l    10000000
  445.     dc.l    1000000
  446.     dc.l    100000
  447.     dc.l    10000
  448.     dc.l    1000
  449.     dc.l    100
  450.     dc.l    10
  451.     dc.l    0
  452. timer:    dc.l    0
  453. device:    dc.l    0
  454. sector:    dc.l    0
  455. wrlen:    dc.l    0
  456. msgport:
  457.     dc.l    0,0,0,0,0,0,0,0
  458. dzw1:    dc.b    0,0,0,0,0,0,0,0,0
  459.     even
  460. dzw2:    dc.b    0,0,0,0,0,0,0,0,0
  461.     even
  462. dz1:    dc.l    0
  463. dz2:    dc.l    0
  464. tmj:    dc.w    0,0,0
  465. date:    dc.w    0,0,0,0,0,0
  466. hms:    dc.w    0,0,0
  467. time:    dc.w    0,0,0,0,0
  468. ttmmjj:    dc.w    0,0,0,0,0
  469. tt:    dc.w    0,0,0,0,0
  470. wl:    dc.l    0
  471. wlm:    dc.l    0
  472. wl1:    dc.l    0
  473. wl2:    dc.l    0
  474. w_ast:    dc.l    0
  475. w_aend:    dc.l    0
  476. kind:    dc.l    0
  477. zahllen:
  478.     dc.l    0
  479. zahlstring:
  480.     dc.l    0
  481. zahlval:
  482.     dc.l    0
  483. realstring:
  484.     dc.l    0
  485. _soo:    dc.l    0
  486. _delay:    dc.l    0
  487. chiptable:
  488.     dc.l    0
  489. ri:    dc.l    0
  490. men:    dc.l    0
  491. rout:    dc.l    0
  492. cstr:    dc.l    0
  493. anz:    dc.l    0
  494. xpos:    dc.l    0
  495. ypos:    dc.l    0
  496. pos:    dc.l    0
  497. clen:    dc.l    0
  498. instr:    dc.l    0
  499. ber:    dc.l    0
  500. bereich1:
  501.     dc.l    0,0,0
  502. bereich2:
  503.     dc.l    0,0,0
  504. str:    dc.l    0,0,0,0
  505. zw:    dc.l    0
  506. jpattern:
  507.     dc.l    0
  508. string:    dc.l    0
  509. instring:
  510.     dc.l    0
  511. pastestring:
  512.     dc.l    0
  513. p_case:    dc.l    0
  514. jbuffer:
  515.     dc.l    0
  516. p1jbuffer:
  517.     dc.l    0
  518. blanull:
  519.     dc.l    0
  520. len:    dc.l    0
  521. gstring:
  522.     dc.l    0
  523. fstring:
  524.     dc.l    0
  525. ustring:
  526.     dc.l    0
  527. var_buffer:
  528.     dc.l    0
  529. var2_buffer:
  530.     dc.l    0
  531. search_len:
  532.     dc.l    0
  533. paste_len:
  534.     dc.l    0
  535. wkey:    dc.l    0
  536. one_byte:
  537.     dc.b    0,0
  538. trackerr:
  539.     dc.l    0
  540. byte:    dc.b    0,0,0
  541.     even
  542. hexer:    dc.b    '$        : '
  543.     even
  544. _start:    dc.l    0
  545. _ende:    dc.l    0
  546. _breite:
  547.     dc.l    0
  548. table:    dc.b    -40,-70,-40,0,40,70,40,0
  549.     even
  550. table2:    dc.b    -40,-70,-90,-100,-90,-70,-40,0
  551.     dc.b    40,70,90,100,90,70,40,0
  552.     even
  553. devicename:
  554.     dc.b    'trackdisk.device',0
  555.     even
  556. diskname:
  557.     dc.b    'disk.resource',0
  558.     even
  559. Validate:
  560.     dc.b    'Validator',0
  561.     even
  562. zahlen:    dc.w    13
  563.     dc.b    '1234567890-',8,13,0
  564.     even
  565. blank:    dc.b    ' ',0
  566.     even
  567. blank2:    dc.b    '  ',0
  568.     even
  569. culeft:    dc.b    29,0
  570.     even
  571. curight:
  572.     dc.b    28,0
  573.     even
  574. crlf:    dc.b    10,13,0
  575.     even
  576. cuoff:    dc.b    27,"C0",0
  577.     even
  578. cuon:    dc.b    27,"C1",0
  579.     even
  580. leer:    dc.w    0
  581.     dc.b    0,0
  582.     even
  583. taste:    dc.w    1
  584.     dc.b    ' ',0
  585.     even
  586. command    dc.b    1,' ',0
  587.     even
  588. all_buts:
  589.     dc.b    9," 0123456789aAäÄbBcCdDeEfFgGhHiIjJkKlLmMnNoOöÖpPqQrRsSßtTuUüÜvVwWxXyYzZ&!@#$%*()+-='<>?,.:;/{}[]^_`~\|",0
  590.     even
  591. y:    dc.b    0,"|",9," 0123456789aAäÄbBcCdDeEfFgGhHiIjJkKlLmMnNoOöÖpPqQrRsSßtTuUüÜvVwWxXyYzZ&!@#$%*()+-='<>?,.:;/{}[]^_`~\",34
  592.     dc.b    1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
  593.     dc.b    127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147
  594.     dc.b    148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168
  595.     dc.b    169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189
  596.     dc.b    190,191,192,193,194,195,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211
  597.     dc.b    212,213,215,216,217,218,219,221,222,224,225,226,227,229,230,231,232,233,234,235,236
  598.     dc.b    237,238,239,240,241,242,243,244,245,247,248,249,250,251,253,254,255
  599. yend:    dc.b    0
  600.     even
  601. y2:    dc.b    0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35
  602.     dc.b    36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67
  603.     dc.b    68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99
  604.     dc.b    100,101,102,103,104,105
  605.     dc.b    106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129
  606.     dc.b    130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153
  607.     dc.b    154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177
  608.     dc.b    178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201
  609.     dc.b    202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225
  610.     dc.b    226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249
  611.     dc.b    250,251,252,253,254,255
  612. y2end:    dc.b    0
  613.     even
  614. tracknr:
  615.     dc.l    0
  616. d_name:    dc.l    0
  617. diskio:    ds.l    21
  618. roottrack:
  619.     dc.l    $00000002,$00000000,$00000000,$00000048,$00000000,$86416369,$00000000,$00000000
  620.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  621.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  622.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  623.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  624.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  625.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  626.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  627.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  628.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$FFFFFFFF,$00000371
  629.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  630.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  631.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  632.     dc.l    $00000000,$00001032,$000002B4,$000002D0,$05456D70,$74790000,$00000000,$00000000
  633.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  634.     dc.l    $00000000,$00001032,$000002B4,$000002D0,$00000000,$00000000,$00000000,$00000001
  635.     dc.l    $C000C037,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF
  636.     dc.l    $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF
  637.     dc.l    $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF
  638.     dc.l    $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFF3FFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF
  639.     dc.l    $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF
  640.     dc.l    $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF
  641.     dc.l    $FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$FFFFFFFF,$3FFFFFFF
  642.     dc.l    0
  643. _lock:    dc.l    0
  644. filehandle:
  645.     dc.l    0
  646. buffer_adr:
  647.     dc.l    0
  648. long:    dc.l    0
  649. efflen:    dc.l    0
  650. f1name:    dc.l    0
  651. f2name:    dc.l    0
  652. fib:    ds.l    66
  653. _sin:    dc.l    0
  654. _cos:    dc.l    0
  655. dimlist:
  656.     ds.l    30
  657. dimendlist:
  658.     dc.l    0
  659. cosinus:
  660.     dc.l    $80000041,$FFF60540,$FFD81440,$FFA63040,$FF605C40,$FF069E40
  661.     dc.l    $aFE98FD40,$FE178240,$FD823640,$FCD92540,$FC1C5D40,$FB4BEC40
  662.     dc.l    $FA67E240,$F9705240,$F8654D40,$F746EB40,$F6154040,$F4D06440
  663.     dc.l    $F3787140,$F20D8240,$F08FB340,$EEFF2140,$ED5BED40,$EBA63640
  664.     dc.l    $E9DE1E40,$E803CA40,$E6175F40,$E4190140,$E208DB40,$DFE71540
  665.     dc.l    $DDB3D940,$DB6F5240,$D919AE40,$D6B31D40,$D43BD040,$D1B3F440
  666.     dc.l    $CF1BBE40,$CC736140,$C9BB1540,$C6F30B40,$C41B7F40,$C134A740
  667.     dc.l    $BE3EBE40,$BB3A0040,$B826AA40,$B504F540,$B1D52340,$AE977540
  668.     dc.l    $AB4C2440,$A7F37E40,$A48DBC40,$A11B2640,$9D9BFF40,$9A108D40
  669.     dc.l    $96791840,$92D5EA40,$8F274640,$8B6D7840,$87A8CB40,$83D98C40
  670.     dc.l    $80000240,$F838FB3F,$F05E963F,$E871793F,$E072353F,$D861733F
  671.     dc.l    $D03FCF3F,$C80DEE3F,$BFCC723F,$B77C093F,$AF1D4A3F,$A6B0E43F
  672.     dc.l    $9E377C3F,$95B1C63F,$8D205D3F,$8483F33F,$F7BA663E,$E659A43E
  673.     dc.l    $D4E6DC3E,$C363823E,$B1D0E43E,$A030673E,$8E836D3E,$F996CC3D
  674.     dc.l    $D613273D,$B27ED13D,$8EDC8E3D,$D65E983C,$8EF3153C,$8EF8DE3B
  675.     dc.l    $00000000,$8EF7DCBB,$8EF296BC,$D65DD8BC,$8EDC4EBD,$B27E91BD
  676.     dc.l    $D61307BD,$F9966DBD,$8E834DBE,$A03057BE,$B1D0D4BE,$C36353BE
  677.     dc.l    $D4E6BCBE,$E65984BE,$F7BA56BE,$8483E3BF,$8D204EBF,$95B1B7BF
  678.     dc.l    $9E3775BF,$A6B0D5BF,$AF1D3BBF,$B77BFABF,$BFCC6BBF,$C80DDFBF
  679.     dc.l    $D03FC1BF,$D86164BF,$E07226BF,$E8716BBF,$F05E8FBF,$F838EDBF
  680.     dc.l    $FFFFFEBF,$83D985C0,$87A8C4C0,$8B6D75C0,$8F2743C0,$92D5E1C0
  681.     dc.l    $967915C0,$9A108AC0,$9D9BFCC0,$A11B20C0,$A48DB9C0,$A7F378C0
  682.     dc.l    $AB4C24C0,$AE976FC0,$B1D51DC0,$B504F2C0,$B826A4C0,$BB39FDC0
  683.     dc.l    $BE3EBCC0,$C134A2C0,$C41B7AC0,$C6F309C0,$C9BB0DC0,$CC735EC0
  684.     dc.l    $CF1BBBC0,$D1B3F2C0,$D43BCCC0,$D6B31BC0,$D919ACC0,$DB6F50C0
  685.     dc.l    $DDB3D5C0,$DFE712C0,$E208D9C0,$E41900C0,$E6175BC0,$E803C9C0
  686.     dc.l    $E9DE1BC0,$EBA633C0,$ED5BEAC0,$EEFF1EC0,$F08FB1C0,$F20D81C0
  687.     dc.l    $F3786EC0,$F4D062C0,$F6153FC0,$F746E9C0,$F8654CC0,$F97051C0
  688.     dc.l    $FA67E1C0,$FB4BEBC0,$FC1C5CC0,$FCD924C0,$FD8235C0,$FE1781C0
  689.     dc.l    $FE98FCC0,$FF069EC0,$FF605CC0,$FFA630C0,$FFD814C0,$FFF605C0
  690.     dc.l    $800000C1,$FFF606C0,$FFD815C0,$FFA630C0,$FF605CC0,$FF069FC0
  691.     dc.l    $FE98FEC0,$FE1782C0,$FD8237C0,$FCD927C0,$FC1C5EC0,$FB4BEDC0
  692.     dc.l    $FA67E2C0,$F97053C0,$F86550C0,$F746EBC0,$F61542C0,$F4D067C0
  693.     dc.l    $F37872C0,$F20D85C0,$F08FB4C0,$EEFF22C0,$ED5BF0C0,$EBA637C0
  694.     dc.l    $E9DE20C0,$E803CFC0,$E61761C0,$E41905C0,$E208DCC0,$DFE717C0
  695.     dc.l    $DDB3DDC0,$DB6F54C0,$D919B3C0,$D6B324C0,$D43BD2C0,$D1B3F9C0
  696.     dc.l    $CF1BC0C0,$CC7366C0,$C9BB1AC0,$C6F30EC0,$C41B84C0,$C134ADC0
  697.     dc.l    $BE3EC4C0,$BB3A05C0,$B826ACC0,$B504FBC0,$B1D528C0,$AE9778C0
  698.     dc.l    $AB4C2DC0,$A7F37EC0,$A48DBFC0,$A11B29C0,$9D9C05C0,$9A1097C0
  699.     dc.l    $967922C0,$92D5EEC0,$8F2749C0,$8B6D7EC0,$87A8D5C0,$83D993C0
  700.     dc.l    $800006C0,$F83908BF,$F05EA4BF,$E87187BF,$E07243BF,$D8617ABF
  701.     dc.l    $D03FD7BF,$C80DFDBF,$BFCC72BF,$B77C18BF,$AF1D60BF,$A6B0EBBF
  702.     dc.l    $9E378CBF,$95B1C7BF,$8D2065BF,$84840ABF,$F7BA85BE,$E659B3BE
  703.     dc.l    $D4E6FABE,$C36382BE,$B1D0F3BE,$A03076BE,$8E838CBE,$F9970CBD
  704.     dc.l    $D61327BD,$B27EF1BD,$8EDCCFBD,$D65EDBBC,$8EF394BC,$8EF8D9BB
  705.     dc.l    $00000000,$8EF7583B,$8EF2173C,$D65D5B3C,$8EDC4F3D,$B27E713D
  706.     dc.l    $D612C83D,$F9964E3D,$8E832D3E,$A030273E,$B1D0B43E,$C363443E
  707.     dc.l    $D4E6BC3E,$E659653E,$F7BA283E,$8483DC3F,$8D20463F,$95B1A83F
  708.     dc.l    $9E376D3F,$A6B0C63F,$AF1D343F,$B77BEB3F,$BFCC5C3F,$C80DDF3F
  709.     dc.l    $D03FBA3F,$D8614F3F,$E0721F3F,$E8715C3F,$F05E873F,$F838EC3F
  710.     dc.l    $FFFFF03F,$83D97F40,$87A8C040,$8B6D6A40,$8F273F40,$92D5E040
  711.     dc.l    $96790F40,$9A108440,$9D9BF240,$A11B1D40,$A48DB340,$A7F37540
  712.     dc.l    $AB4C1B40,$AE976640,$B1D51D40,$B504EC40,$B8269F40,$BB39F740
  713.     dc.l    $BE3EB440,$C134A040,$C41B7740,$C6F30440,$C9BB1040,$CC735740
  714.     dc.l    $CF1BB440,$D1B3ED40,$D43BC740,$D6B31B40,$D919AA40,$DB6F4840
  715.     dc.l    $DDB3D340,$DFE70E40,$E208D540,$E418FE40,$E6175A40,$E803C540
  716.     dc.l    $E9DE1840,$EBA63040,$ED5BE940,$EEFF1D40,$F08FAF40,$F20D7D40
  717.     dc.l    $F3786C40,$F4D06240,$F6153D40,$F746E840,$F8654A40,$F9704E40
  718.     dc.l    $FA67DF40,$FB4BEA40,$FC1C5B40,$FCD92340,$FD823440,$FE178040
  719.     dc.l    $FE98FC40,$FF069D40,$FF605B40,$FFA62F40,$FFD81440,$FFF60540
  720. sinus:    dc.l    $00000000,$8EF85A3B,$8EF2D53C,$D65E573C,$8EDC6F3D,$B27EB13D
  721.     dc.l    $D613073D,$F996AC3D,$8E835D3E,$A030573E,$B1D0D43E,$C363733E
  722.     dc.l    $D4E6CC3E,$E659943E,$F7BA663E,$8483EB3F,$8D20553F,$95B1BF3F
  723.     dc.l    $9E377C3F,$A6B0DC3F,$AF1D433F,$B77C023F,$BFCC6B3F,$C80DE63F
  724.     dc.l    $D03FC83F,$D8616C3F,$E0722D3F,$E871723F,$F05E963F,$F838F43F
  725.     dc.l    $FFFFFE3F,$83D98940,$87A8CB40,$8B6D7840,$8F274340,$92D5E740
  726.     dc.l    $96791840,$9A108D40,$9D9BFC40,$A11B2340,$A48DB940,$A7F37B40
  727.     dc.l    $AB4C2440,$AE977240,$B1D52040,$B504F240,$B826A740,$BB39FD40
  728.     dc.l    $BE3EBE40,$C134A540,$C41B7D40,$C6F30940,$C9BB1240,$CC736140
  729.     dc.l    $CF1BBE40,$D1B3F240,$D43BCE40,$D6B31D40,$D919AE40,$DB6F5040
  730.     dc.l    $DDB3D740,$DFE71340,$E208DB40,$E4190040,$E6175D40,$E803C940
  731.     dc.l    $E9DE1D40,$EBA63440,$ED5BEC40,$EEFF2040,$F08FB140,$F20D8140
  732.     dc.l    $F3787140,$F4D06340,$F6153F40,$F746EA40,$F8654D40,$F9705140
  733.     dc.l    $FA67E140,$FB4BEB40,$FC1C5C40,$FCD92540,$FD823540,$FE178140
  734.     dc.l    $FE98FD40,$FF069E40,$FF605C40,$FFA63040,$FFD81440,$FFF60540
  735.     dc.l    $80000041,$FFF60540,$FFD81540,$FFA63040,$FF605C40,$FF069F40
  736.     dc.l    $FE98FD40,$FE178240,$FD823740,$FCD92540,$FC1C5D40,$FB4BED40
  737.     dc.l    $FA67E340,$F9705240,$F8654E40,$F746EC40,$F6154140,$F4D06540
  738.     dc.l    $F3787240,$F20D8440,$F08FB440,$EEFF2240,$ED5BED40,$EBA63740
  739.     dc.l    $E9DE2040,$E803CC40,$E6176140,$E4190340,$E208DC40,$DFE71740
  740.     dc.l    $DDB3D940,$DB6F5440,$D919B340,$D6B32040,$D43BD040,$D1B3F940
  741.     dc.l    $CF1BC040,$CC736340,$C9BB1540,$C6F30E40,$C41B7F40,$C134AA40
  742.     dc.l    $BE3EBE40,$BB3A0240,$B826AC40,$B504F640,$B1D52640,$AE977540
  743.     dc.l    $AB4C2740,$A7F38140,$A48DBF40,$A11B2640,$9D9C0540,$9A109040
  744.     dc.l    $96791C40,$92D5EA40,$8F274940,$8B6D7B40,$87A8CE40,$83D98C40
  745.     dc.l    $80000640,$F839013F,$F05E9D3F,$E871793F,$E0723C3F,$D861733F
  746.     dc.l    $D03FD73F,$C80DF53F,$BFCC7A3F,$B77C113F,$AF1D4A3F,$A6B0E43F
  747.     dc.l    $9E378C3F,$95B1CF3F,$8D205D3F,$8483FB3F,$F7BA753E,$E659A43E
  748.     dc.l    $D4E6EB3E,$C363823E,$B1D0E33E,$A030763E,$8E837C3E,$F996CC3D
  749.     dc.l    $D613473D,$B27EF13D,$8EDCAF3D,$D65E9B3C,$8EF3573C,$8EF9583B
  750.     dc.l    $00000000,$8EF759BB,$8EF256BC,$D65DDBBC,$8EDC4FBD,$B27E71BD
  751.     dc.l    $D612C8BD,$F9966EBD,$8E834DBE,$A03037BE,$B1D0B4BE,$C36353BE
  752.     dc.l    $D4E6CBBE,$E65975BE,$F7BA37BE,$8483ECBF,$8D2046BF,$95B1A8BF
  753.     dc.l    $9E3775BF,$A6B0CDBF,$AF1D3BBF,$B77BFABF,$BFCC5CBF,$C80DDFBF
  754.     dc.l    $D03FC1BF,$D86156BF,$E07226BF,$E87163BF,$F05E8FBF,$F838ECBF
  755.     dc.l    $FFFFF0BF,$83D985C0,$87A8C4C0,$8B6D6DC0,$8F273FC0,$92D5E0C0
  756.     dc.l    $967915C0,$9A1087C0,$9D9BF6C0,$A11B20C0,$A48DB3C0,$A7F375C0
  757.     dc.l    $AB4C1EC0,$AE976CC0,$B1D51DC0,$B504ECC0,$B826A1C0,$BB39FAC0
  758.     dc.l    $BE3EB6C0,$C134A5C0,$C41B7AC0,$C6F306C0,$C9BB0DC0,$CC7359C0
  759.     dc.l    $CF1BB6C0,$D1B3EFC0,$D43BCCC0,$D6B319C0,$D919A8C0,$DB6F4CC0
  760.     dc.l    $DDB3D5C0,$DFE710C0,$E208D7C0,$E418FCC0,$E6175AC0,$E803C7C0
  761.     dc.l    $E9DE1BC0,$EBA631C0,$ED5BECC0,$EEFF1DC0,$F08FAEC0,$F20D80C0
  762.     dc.l    $F3786EC0,$F4D063C0,$F6153EC0,$F746E7C0,$F8654BC0,$F97050C0
  763.     dc.l    $FA67E0C0,$FB4BEBC0,$FC1C5CC0,$FCD924C0,$FD8235C0,$FE1780C0
  764.     dc.l    $FE98FDC0,$FF069EC0,$FF605BC0,$FFA62FC0,$FFD814C0,$FFF605C0
  765.     dc.l    $800000C1,$FFF605C0,$FFD815C0,$FFA631C0,$FF605DC0,$FF069FC0
  766.     dc.l    $FE98FEC0,$FE1783C0,$FD8238C0,$FCD927C0,$FC1C5EC0,$FB4BEEC0
  767.     dc.l    $FA67E3C0,$F97054C0,$F86551C0,$F746EDC0,$F61542C0,$F4D068C0
  768.     dc.l    $F37873C0,$F20D86C0,$F08FB6C0,$EEFF25C0,$ED5BF0C0,$EBA638C0
  769.     dc.l    $E9DE22C0,$E803D1C0,$E61762C0,$E41907C0,$E208DEC0,$DFE717C0
  770.     dc.l    $DDB3DCC0,$DB6F58C0,$D919B5C0,$D6B326C0,$D43BD2C0,$D1B3F9C0
  771.     dc.l    $CF1BC5C0,$CC7368C0,$C9BB1CC0,$C6F310C0,$C41B84C0,$C134ADC0
  772.     dc.l    $BE3EC6C0,$BB3A0AC0,$B826ACC0,$B504FBC0,$B1D52BC0,$AE977BC0
  773.     dc.l    $AB4C30C0,$A7F384C0,$A48DC2C0,$A11B2DC0,$9D9C02C0,$9A109AC0
  774.     dc.l    $967925C0,$92D5F1C0,$8F2750C0,$8B6D7BC0,$87A8D1C0,$83D99AC0
  775.     dc.l    $800009C0,$F83910BF,$F05EABBF,$E87180BF,$E07243BF,$D86181BF
  776.     dc.l    $D03FE5BF,$C80E04BF,$BFCC81BF,$B77C18BF,$AF1D59BF,$A6B0FBBF
  777.     dc.l    $9E379ABF,$95B1CEBF,$8D206DBF,$848402BF,$F7BA94BE,$E659D2BE
  778.     dc.l    $D4E70ABE,$C36392BE,$B1D103BE,$A03096BE,$8E839CBE,$F9972BBD
  779.     dc.l    $D61367BD,$B27F11BD,$8EDCEEBD,$D65F56BC,$8EF3D8BC,$8EF9DCBB
  780.  
  781. **********************************************************************
  782.  
  783. L1
  784.  
  785. L_private    equ    2
  786. L2
  787.     bug
  788.     rts
  789.  
  790. ******* PATMAT (string,pattern)
  791. L_Pm        equ    3
  792. L3
  793. Pm:    movem.l    a4-a6,-(sp)
  794.     movem.l    (a3)+,a0-a1
  795.     move.w    (a0)+,d0
  796.     Dsave    a0,jpattern
  797.     move.w    (a1)+,d0
  798.     Dsave    a1,string
  799.     bsr    fpattype
  800.     bsr    search
  801.     Rbsr    uninit
  802.     movem.l    (sp)+,a4-a6
  803.     moveq    #0,d2
  804.     rts
  805. fpattype:
  806.     Dmove    jpattern,a0
  807.     cmp.l    #0,a0
  808.     beq    all
  809.     cmp.b    #0,(a0)
  810.     beq    all
  811.     cmp.b    #'*',(a0)
  812.     beq    JOKER
  813. _ooo_:
  814.     add.l    #1,a0
  815.     cmp.b    #0,(a0)
  816.     beq    one
  817.     cmp.b    #'*',(a0)
  818.     beq    _ooo_JOKER
  819.     bra    _ooo_
  820. _ooo_JOKER:
  821.     add.l    #1,a0
  822.     cmp.b    #0,(a0)
  823.     beq    prefix
  824.     bra    pre_suffix
  825. JOKER:
  826.     add.l    #1,a0
  827.     cmp.b    #0,(a0)
  828.     beq    all
  829. JOKER_ooo_:
  830.     add.l    #1,a0
  831.     cmp.b    #0,(a0)
  832.     beq    suffix
  833.     cmp.b    #'*',(a0)
  834.     beq    midfix
  835.     bra    JOKER_ooo_
  836. all:
  837.     Dsave    #$00000000,p_case
  838.     rts
  839. one:
  840.     Dsave    #$11111111,p_case
  841.     rts
  842. suffix:
  843.     Dsave    #$00001111,p_case
  844.     Mlea    p2_jbuffer,a1
  845.     Dmove    jpattern,a0
  846.     add.l    #1,a0
  847. suffix_loop:
  848.     cmp.b    #0,(a0)
  849.     beq    p_end
  850.     move.b    (a0)+,(a1)+
  851.     bra    suffix_loop
  852. prefix:
  853.     Dsave    #$11110000,p_case
  854.     Mlea    p1_jbuffer,a1
  855.     Dmove    jpattern,a0
  856. prefix_loop:
  857.     cmp.b    #'*',(a0)
  858.     beq    p_end
  859.     move.b    (a0)+,(a1)+
  860.     bra    prefix_loop
  861. pre_suffix:
  862.     Dsave    #$11100111,p_case
  863.     Mlea    p1_jbuffer,a1
  864.     Dmove    jpattern,a0
  865. pre_suffix_loop1:
  866.     cmp.b    #'*',(a0)
  867.     beq    p_s_end
  868.     move.b    (a0)+,(a1)+
  869.     bra    pre_suffix_loop1
  870. p_s_end:
  871.     Mlea    p2_jbuffer,a1
  872.     add.l    #1,a0
  873. pre_suffix_loop2:
  874.     cmp.b    #0,(a0)
  875.     beq    p_end
  876.     move.b    (a0)+,(a1)+
  877.     bra    pre_suffix_loop2
  878. midfix:
  879.     Dsave    #$00011000,p_case
  880.     Mlea    p1_jbuffer,a1
  881.     Dmove    jpattern,a0
  882.     add.l    #1,a0
  883. midfix_loop:
  884.     cmp.b    #'*',(a0)
  885.     beq    p_end
  886.     move.b    (a0)+,(a1)+
  887.     bra    midfix_loop
  888. p_end:
  889.     rts
  890. search:
  891.     Dmove2    string,p_case,a0,d0
  892.     cmp.l    #$00000000,d0
  893.     beq    jpattern_ok
  894.     cmp.l    #$11111111,d0
  895.     beq    compare_one
  896.     cmp.l    #$11110000,d0
  897.     beq    compare_prefix
  898.     cmp.l    #$00001111,d0
  899.     beq    compare_suffix
  900.     cmp.l    #$11100111,d0
  901.     beq    compare_pre_suffix
  902.     cmp.l    #$00011000,d0
  903.     beq    compare_midfix
  904.     move.l    #-1,d3
  905.     rts
  906. compare_one:
  907.     Dmove    jpattern,a1
  908. cmp_one:
  909.     cmp.b    #0,(a0)
  910.     beq    really_one
  911.     cmp.b    #'?',(a1)
  912.     bne    cmp1
  913.     add.l    #1,a0
  914.     add.l    #1,a1
  915.     bra    cmp_one
  916. cmp1:
  917.     cmp.b    (a0)+,(a1)+
  918.     bne    jpattern_not_ok
  919.     bra    cmp_one
  920. really_one:
  921.     cmp.b    #0,(a1)
  922.     bne    jpattern_not_ok
  923.     bra    jpattern_ok
  924. compare_prefix:
  925.     Mlea    p1_jbuffer,a1
  926. cmp_prefix:
  927.     cmp.b    #0,(a1)
  928.     beq    jpattern_ok
  929.     cmp.b    #'?',(a1)
  930.     bne    cmp2
  931.     add.l    #1,a0
  932.     add.l    #1,a1
  933.     bra    cmp_prefix
  934. cmp2:
  935.     cmp.b    (a0)+,(a1)+
  936.     bne    jpattern_not_ok
  937.     bra    cmp_prefix
  938. compare_suffix:
  939.     Mlea    p2_jbuffer,a1
  940.     move.b    #0,d7
  941. cmp01:
  942.     add.b    #1,d7
  943.     cmp.b    #0,(a1)
  944.     beq    cmp02
  945.     add.l    #1,a1
  946.     bra    cmp01
  947. cmp02:
  948.     cmp.b    #0,(a0)
  949.     beq    cmp_suffix
  950.     add.l    #1,a0
  951.     bra    cmp02
  952. cmp_suffix:
  953.     cmp.b    #0,d7
  954.     beq    jpattern_ok
  955.     cmp.b    #'?',(a1)
  956.     bne    cmp3
  957.     sub.l    #1,a0
  958.     sub.l    #1,a1
  959.     sub.b    #1,d7
  960.     bra    cmp_suffix
  961. cmp3:
  962.     cmp.b    (a0)+,(a1)+
  963.     bne    jpattern_not_ok
  964.     sub.l    #2,a0
  965.     sub.l    #2,a1
  966.     sub.b    #1,d7
  967.     bra    cmp_suffix
  968. compare_pre_suffix:
  969.     Mlea    p1_jbuffer,a1
  970. cmp_pre_suffix:
  971.     cmp.b    #0,(a1)
  972.     beq    compare_suffix
  973.     cmp.b    #'?',(a1)
  974.     bne    cmp4
  975.     add.l    #1,a0
  976.     add.l    #1,a1
  977.     bra    cmp_pre_suffix
  978. cmp4:
  979.     cmp.b    (a0)+,(a1)+
  980.     bne    jpattern_not_ok
  981.     bra    cmp_pre_suffix
  982. compare_midfix:
  983.     Dsave    a0,jbuffer
  984. cmp_mid_fix:
  985.     Dmove    jbuffer,a0
  986.     cmp.b    #0,(a0)
  987.     beq    jpattern_not_ok
  988.     Mlea    p1_jbuffer,a1
  989. cmp_midfix:
  990.     cmp.b    #0,(a1)
  991.     beq    jpattern_ok
  992.     cmp.b    #'?',(a1)
  993.     bne    cmp5
  994.     add.l    #1,a0
  995.     add.l    #1,a1
  996.     bra    cmp_midfix
  997. cmp5:
  998.     cmp.b    (a0)+,(a1)+
  999.     bne    not_yet
  1000.     bra    cmp_midfix
  1001. not_yet:
  1002.     Dlea    jbuffer,a6
  1003.     add.l    #1,(a6)
  1004.     bra    cmp_mid_fix
  1005. jpattern_ok:
  1006.     move.l    #1,d3
  1007.     rts
  1008. jpattern_not_ok:
  1009.     move.l    #0,d3
  1010.     rts
  1011.  
  1012. ******* SETCLOCK "hh:mm:ss"
  1013. L_sc    equ    4
  1014. L4
  1015. sc:    Dlea    ttmmjj,a1
  1016.     move.l    (a3)+,a0
  1017.     move.w    (a0)+,d0
  1018.     tst.w    d0
  1019.     beq    no_param
  1020.     Dlea    tt,a2
  1021.     bsr    copy
  1022.     add.l    #2,a1
  1023.     bsr    copy
  1024.     add.l    #2,a1
  1025.     bsr    copy2
  1026.     bsr    test
  1027.     bsr    test_t
  1028.     Dlea    ttmmjj,a0
  1029.     lea    $dc0000,a1
  1030.     move.l    #5,d1
  1031. ttl:    move.b    (a0)+,d0
  1032.     sub.b    #48,d0
  1033.     ext.w    d0
  1034.     move.w    d0,(a1)+
  1035.     add.l    #2,a1
  1036.     dbra    d1,ttl
  1037.     rts
  1038. test_t:    Dlea    ttmmjj,a0
  1039.     move.w    (a0)+,d2
  1040.     move.w    (a0)+,d1
  1041.     move.w    (a0)+,d0
  1042.     Dlea    ttmmjj,a0
  1043.     move.w    d0,(a0)+
  1044.     move.w    d1,(a0)+
  1045.     move.w    d2,(a0)+
  1046.     rts
  1047. copy:    move.b    (a0)+,d0
  1048.     cmp.b    #':',(a0)
  1049.     beq    one_b
  1050.     move.b    (a0)+,d1
  1051.     cmp.b    #':',(a0)+
  1052.     bne    error
  1053.     move.b    d1,(a1)
  1054.     move.b    d0,1(a1)
  1055.     move.b    d0,(a2)+
  1056.     move.b    d1,(a2)+
  1057.     rts
  1058. one_b:    move.b    #'0',1(a1)
  1059.     move.b    d0,(a1)
  1060.     add.l    #1,a0
  1061.     move.b    #'0',(a2)+
  1062.     move.b    d0,(a2)+
  1063.     rts
  1064. error:    move.l    (sp)+,d0
  1065.     rts
  1066. copy2:    move.b    (a0)+,d0
  1067.     move.b    (a0)+,d1
  1068.     cmp.b    #0,(a0)+
  1069.     bne    error
  1070.     cmp.b    #0,d1
  1071.     bne    cc2
  1072.     move.b    #'0',d1
  1073. cc2:    move.b    d1,1(a1)
  1074.     move.b    d0,(a1)
  1075.     move.b    d1,(a2)+
  1076.     move.b    d0,(a2)+
  1077.     rts
  1078. test:    Dlea    tt,a0
  1079.     cmp.w    #'23',(a0)+
  1080.     bgt    error
  1081.     cmp.w    #'59',(a0)+
  1082.     bgt    error
  1083.     cmp.w    #'59',(a0)+
  1084.     bgt    error
  1085. no_param:
  1086.     rts
  1087.  
  1088. ******* SETDATE "tt.mm.jj"
  1089. L_sd    equ    5
  1090. L5
  1091. sd:    Dlea    ttmmjj,a1
  1092.     move.l    (a3)+,a0
  1093.     move.w    (a0)+,d0
  1094.     tst.w    d0
  1095.     beq    no_param2
  1096.     Dlea    tt,a2
  1097.     bsr    copy3
  1098.     add.l    #2,a1
  1099.     bsr    copy3
  1100.     add.l    #2,a1
  1101.     bsr    copy4
  1102.     bsr    test3
  1103.     Dlea    ttmmjj,a0
  1104.     lea    $dc0018,a1
  1105.     move.l    #5,d1
  1106. ddl:    move.b    (a0)+,d0
  1107.     sub.b    #48,d0
  1108.     ext.w    d0
  1109.     move.w    d0,(a1)+
  1110.     add.l    #2,a1
  1111.     dbra    d1,ddl
  1112.     rts
  1113. error2:    movem.l    (sp)+,d0
  1114. no_param2:
  1115.     rts
  1116. test3:    Dlea    tt,a0
  1117.     cmp.w    #'31',(a0)+
  1118.     bgt    error2
  1119.     cmp.w    #'12',(a0)+
  1120.     bgt    error2
  1121.     rts
  1122. copy3:    move.b    (a0)+,d0
  1123.     cmp.b    #'.',(a0)
  1124.     beq    one_b3
  1125.     move.b    (a0)+,d1
  1126.     cmp.b    #'.',(a0)+
  1127.     bne    error2
  1128.     move.b    d1,(a1)
  1129.     move.b    d0,1(a1)
  1130.     move.b    d0,(a2)+
  1131.     move.b    d1,(a2)+
  1132.     rts
  1133. one_b3:    move.b    #'0',1(a1)
  1134.     move.b    d0,(a1)
  1135.     add.l    #1,a0
  1136.     move.b    #'0',(a2)+
  1137.     move.b    d0,(a2)+
  1138.     rts
  1139. copy4:    move.b    (a0)+,d0
  1140.     move.b    (a0)+,d1
  1141.     cmp.b    #0,(a0)+
  1142.     bne    error2
  1143.     move.b    d1,(a1)
  1144.     move.b    d0,1(a1)
  1145.     rts
  1146.  
  1147. ******* TIME$
  1148. L_Zeit    equ    6
  1149. L6
  1150. Zeit:
  1151.     lea    $dc0000,a2
  1152.     Dlea    hms,a0
  1153.     Rbsr    dz
  1154.     Dlea    hms,a0
  1155.     Dlea    time,a1
  1156.     move.w    #8,(a1)+
  1157.     move.b    5(a0),(a1)+
  1158.     move.b    4(a0),(a1)+
  1159.     move.b    #':',(a1)+
  1160.     move.b    3(a0),(a1)+
  1161.     move.b    2(a0),(a1)+
  1162.     move.b    #':',(a1)+
  1163.     move.b    1(a0),(a1)+
  1164.     move.b    (a0),(a1)+
  1165.     moveq    #2,d2
  1166.     Dlea    time,a0
  1167.     move.l    a0,d3
  1168.     rts
  1169.  
  1170. ******* DATE$
  1171. L_Datum    equ    7
  1172. L7
  1173. Datum:    movem.l    a3-a6,-(sp)
  1174.     move.l    DosBase(a5),a6
  1175.     Dlea    date,a0
  1176.     move.l    a0,d1
  1177.     jsr    -192(a6)
  1178.     move.l    d0,a0
  1179.     move.l    (a0),d0
  1180.     move.l    #1978,d1
  1181.     move.l    #7,d2
  1182. do:    move.l    d0,d5
  1183.     move.l    #0,d3
  1184.     move.l    d1,d4
  1185.     and    #3,d4
  1186.     cmp    #0,d4
  1187.     bne    d30
  1188.     move.l    #1,d3
  1189. d30:    sub.l    d3,d0
  1190.     sub.l    #365,d0
  1191.     cmp.l    #0,d0
  1192.     blt    exit
  1193.     move.l    d5,d0
  1194.     add.l    d3,d2
  1195.     add.l    #1,d2
  1196.     cmp.l    #7,d2
  1197.     ble    d2l7
  1198.     sub.l    #7,d2
  1199. d2l7:    move.l    d5,d0
  1200.     sub.l    d3,d0
  1201.     sub.l    #365,d0
  1202.     add.l    #1,d1
  1203.     bra    do
  1204. exit:    move.l    d5,d0
  1205.     move.l    #1,d6
  1206.     Dlea    jan,a1
  1207.     Dlea    mar,a2
  1208. do2:    move.l    (a1)+,d4
  1209.     cmp.l    a2,a1
  1210.     bne    nofeb
  1211.     add.l    d3,d4
  1212. nofeb:    move.l    d0,d5
  1213.     sub.l    d4,d5
  1214.     cmp.l    #0,d5
  1215.     blt    exit2
  1216.     sub.l    d4,d0
  1217.     add.l    #1,d6
  1218.     bra    do2
  1219. exit2:    add.l    #1,d0
  1220.     move.l    d1,d2
  1221.     move.l    d6,d1
  1222.     Dlea    tmj2,a0
  1223.     move.w    #10,(a0)+
  1224.     movem.l    d1-d2,-(sp)
  1225.     cmp.l    #10,d0
  1226.     bge    no1
  1227.     move.b    #'0',(a0)+
  1228. no1:    bsr    dbinto_dec
  1229.     move.b    #'.',(a0)+
  1230.     movem.l    (sp)+,d1-d2
  1231.     move.l    d1,d0
  1232.     movem.l    d2,-(sp)
  1233.     cmp.l    #10,d0
  1234.     bge    no3
  1235.     move.b    #'0',(a0)+
  1236. no3:    bsr    dbinto_dec
  1237.     move.b    #'.',(a0)+
  1238.     movem.l    (sp)+,d2
  1239.     move.l    d2,d0
  1240.     bsr    dbindec1
  1241.     move.b    #0,(a0)+
  1242.     movem.l    (sp)+,a3-a6
  1243.     Dlea    tmj2,a0
  1244.     move.l    a0,d3
  1245.     moveq    #2,d2
  1246.     rts
  1247. dbinto_dec:
  1248.     ext.l    d0
  1249. dbindec1:
  1250.     tst.l    d0
  1251.     beq    dbindec6
  1252.     neg.l    d0
  1253.     bra    dbindec2
  1254. dbindec2:
  1255.     Dlea    decathlon,a1
  1256.     clr.w    d1
  1257. dbindec3:
  1258.     move.l    (a1)+,d2
  1259.     beq    dbindec6
  1260.     moveq    #-1,d4
  1261. dbindec4:
  1262.     add.l    d2,d0
  1263.     dbgt    d4,dbindec4
  1264.     sub.l    d2,d0
  1265.     addq.w    #1,d4
  1266.     bne    dbindec5
  1267.     tst.w    d1
  1268.     beq    dbindec3
  1269. dbindec5:
  1270.     moveq    #-1,d1
  1271.     neg.b    d4
  1272.     addi.b    #$30,d4
  1273.     move.b    d4,(a0)+
  1274.     bra    dbindec3
  1275. dbindec6:
  1276.     neg.b    d0
  1277.     addi.b    #$30,d0
  1278.     move.b    d0,(a0)+
  1279.     add.l    #2,a2
  1280.     rts
  1281. ******* COUNT(string,instring)
  1282. L_cou    equ    8
  1283. L8
  1284. cou:    movem.l    a4-a6,-(sp)
  1285.     move.l    #0,d3
  1286.     move.l    (a3)+,a1
  1287.     cmp.w    #0,(a1)+
  1288.     beq    vpno
  1289.     Dsave    a1,p1jbuffer
  1290.     move.l    (a3)+,a0
  1291.     movem.l    a3,-(sp)
  1292.     cmp.w    #0,(a0)+
  1293.     beq    pno
  1294.     Dsave    a0,jbuffer
  1295. cmf:
  1296.     Dmove2    jbuffer,p1jbuffer,a0,a1
  1297.     cmp.b    #0,(a0)
  1298.     beq    pno
  1299. cmfix:
  1300.     cmp.b    #0,(a1)
  1301.     beq    pok
  1302.     cmp.b    (a0)+,(a1)+
  1303.     bne    ny
  1304.     bra    cmfix
  1305. ny:
  1306.     Dlea    jbuffer,a6
  1307.     add.l    #1,(a6)
  1308.     bra    cmf
  1309. vpno:
  1310.     move.l    (a3)+,d2
  1311.     movem.l    a3,-(sp)
  1312. pno:
  1313.     moveq    #0,d2
  1314.     Dsave2    #0,#0,jbuffer,p1jbuffer
  1315.     movem.l    (sp)+,a3
  1316.     movem.l    (sp)+,a4-a6
  1317.     rts
  1318. pok:
  1319.     add.l    #1,d3
  1320.     bra    ny
  1321.  
  1322. ******* PASTE$(string,instring,pastestring)
  1323. L_pa    equ    9
  1324. L9
  1325. _paste:    movem.l    a3-a6,-(sp)
  1326.     Rbsr    uninit
  1327.     movem.l    (sp)+,a3-a6
  1328.     move.l    (a3)+,a2
  1329.     move.l    (a3)+,a1
  1330.     move.l    (a3)+,a0
  1331.     movem.l    a3-a6,-(sp)
  1332.     Dsave3    a0,a1,a2,string,instring,pastestring
  1333.     move.w    (a1),d0
  1334.     ext.l    d0
  1335.     Dsave    d0,paste_len
  1336.     cmp.w    #0,(a0)
  1337.     beq    _error
  1338.     cmp.w    #0,(a1)
  1339.     beq    _error
  1340.     add.l    #2,a0
  1341.     add.l    #2,a1
  1342.     add.l    #2,a2
  1343.     Mlea    paste_jbuffer,a4
  1344.     add.l    #2,a4
  1345. palo:    cmp.b    #0,(a0)
  1346.     beq    paste_ready
  1347.     bsr    _instr
  1348.     bra    palo
  1349. paste_ready:
  1350.     move.b    #0,(a4)+
  1351.     Mlea    paste_jbuffer,a0
  1352.     move.l    a0,a1
  1353.     add.l    #2,a0
  1354.     move.w    #0,d0
  1355. g_plen:    cmp.b    #0,(a0)+
  1356.     beq    is_len
  1357.     add.w    #1,d0
  1358.     bra    g_plen
  1359. is_len:    move.w    d0,(a1)
  1360.     Rbsr    getmem
  1361.     Dmove    var_buffer,a1
  1362.     cmp.l    #0,a1
  1363.     beq    nomemory
  1364.     Mlea    paste_jbuffer,a0
  1365.     move.w    (a0)+,(a1)+
  1366. compl:    cmp.b    #0,(a0)
  1367.     beq    complete
  1368.     move.b    (a0)+,(a1)+
  1369.     bra    compl
  1370. complete:
  1371.     move.b    #0,(a1)+
  1372.     Dmove    var_buffer,d3
  1373.     moveq    #2,d2
  1374.     movem.l    (sp)+,a3-a6
  1375.     rts
  1376. nomemory:
  1377.     movem.l    (sp)+,a3-a6
  1378.     moveq    #24,d0
  1379.     Rjmp    L_Error
  1380. _instr:    movem.l    a0/a1,-(sp)
  1381. instl:    cmp.b    #0,(a1)
  1382.     beq    is_in
  1383.     cmp.b    (a0)+,(a1)+
  1384.     bne    not_in
  1385.     bra    instl
  1386. not_in:    movem.l    (sp)+,a0/a1
  1387.     move.b    (a0)+,(a4)+
  1388.     rts
  1389. is_in:    movem.l    (sp)+,a0/a1
  1390.     movem.l    a2,-(sp)
  1391. isinl:    cmp.b    #0,(a2)
  1392.     beq    is_pasted
  1393.     move.b    (a2)+,(a4)+
  1394.     bra    isinl
  1395. is_pasted:
  1396.     Dmove    paste_len,d0
  1397.     add.l    d0,a0
  1398.     movem.l    (sp)+,a2
  1399.     rts
  1400. _error:    Dmove    string,d3
  1401.     Rbsr    err_get
  1402.     moveq    #2,d2
  1403.     rts
  1404.  
  1405. ******* LIMIT(zahl,min,max)
  1406. L_lim    equ    10
  1407. L10
  1408. lim:    movem.l    (a3)+,d0-d2
  1409.     cmp.l    d2,d0
  1410.     blt    limerr
  1411.     cmp.l    d2,d1
  1412.     bgt    limerr
  1413.     moveq    #0,d2
  1414.     move.l    #1,d3
  1415.     rts
  1416. limerr:    moveq    #0,d2
  1417.     move.l    #0,d3
  1418.     rts
  1419.  
  1420. ******* SCREEN PLANES
  1421. L_bp    equ    11
  1422. L11
  1423. bp:    move.l    ScOnAd(a5),a0
  1424.     add.l    #80,a0
  1425.     move.w    (a0),d3
  1426.     ext.l    d3
  1427.     moveq    #0,d2
  1428.     rts
  1429.  
  1430. ******* SCREEN RESOLUTION
  1431. L_rez    equ    12
  1432. L12
  1433. rez:    move.l    ScOnAd(a5),a0
  1434.     add.l    #72,a0
  1435.     moveq    #0,d3
  1436.     move.w    (a0),d3
  1437.     and.w    #$8804,d3
  1438.     cmp.w    #$8000,d3
  1439.     bne    no_neg
  1440.     neg.w    d3
  1441. no_neg:    ext.l    d3
  1442.     swap.w    d3
  1443.     move.w    #$0000,d3
  1444.     swap.w    d3
  1445.     moveq    #0,d2
  1446.     rts
  1447. ******* CHCASE(string)
  1448. L_chc    equ    13
  1449. L13
  1450. chc:    movem.l    a4-a6,-(sp)
  1451.     move.l    (a3)+,a0
  1452.     movem.l    a0,-(sp)
  1453.     move.w    (a0),d0
  1454.     Rbeq    g_err
  1455.     Rbsr    getmem
  1456.     cmp.l    #0,d0
  1457.     Rbeq    g_err
  1458.     Dmove    var_buffer,a1
  1459.     movem.l    (sp)+,a0
  1460.     move.w    (a0)+,(a1)+
  1461.     bsr    changecase
  1462.     movem.l    (sp)+,a4-a6
  1463.     moveq    #2,d2
  1464.     Dmove    var_buffer,d3
  1465.     rts
  1466. changecase:
  1467.     cmp.b    #0,(a0)
  1468.     beq    changeend
  1469.     move.b    (a0)+,d2
  1470.     cmp.b    #'A',d2
  1471.     blt    no2
  1472.     cmp.b    #'Z',d2
  1473.     ble    ch
  1474.     cmp.b    #'a',d2
  1475.     blt    no2
  1476.     cmp.b    #'z',d2
  1477.     bgt    no2
  1478. ch:    eori.b    #%00100000,d2
  1479. no2:
  1480.     move.b    d2,(a1)+
  1481.     bra    changecase
  1482. changeend:
  1483.     move.b    #0,(a1)
  1484.     rts
  1485.  
  1486. *******    FIRSTUP$(string)
  1487. L_fup    equ    14
  1488. L14
  1489. fup:    movem.l    a4-a6,-(sp)
  1490.     move.l    (a3)+,a0
  1491.     movem.l    a0,-(sp)
  1492.     move.w    (a0),d0
  1493.     Rbeq    g_err
  1494.     Rbsr    getmem
  1495.     cmp.l    #0,d0
  1496.     Rbeq    g_err
  1497.     Dmove    var_buffer,a1
  1498.     movem.l    (sp)+,a0
  1499.     move.w    (a0)+,(a1)+
  1500.     bsr    fiup
  1501.     movem.l    (sp)+,a4-a6
  1502.     moveq    #2,d2
  1503.     Dmove    var_buffer,d3
  1504.     rts
  1505. fiup:    move.b    (a0)+,d2
  1506.     beq    fiupend
  1507.     cmp.b    #'a',d2
  1508.     blt    noflip
  1509.     cmp.b    #'z',d2
  1510.     bgt    noflip
  1511. flip:    eori.b    #%00100000,d2
  1512. noflip:    move.b    d2,(a1)+
  1513.     cmp.b    #' ',d2
  1514.     beq    fiup
  1515. nf2:    move.b    (a0)+,d2
  1516.     beq    fiupend
  1517.     move.b    d2,(a1)+
  1518.     cmp.b    #'0',d2
  1519.     blt    fiup
  1520.     cmp.b    #'z',d2
  1521.     bgt    fiup
  1522.     bra    nf2
  1523. fiupend:
  1524.     move.b    #0,(a1)+
  1525.     rts
  1526.  
  1527. ******* SKIP$("string")
  1528. L_ubl    equ    15
  1529. L15
  1530. ubl:    movem.l    a4-a6,-(sp)
  1531.     move.l    (a3)+,a0
  1532.     move.l    a0,-(sp)
  1533.     move.w    (a0),d0
  1534.     Rbeq    g_err
  1535.     Rbsr    getmem
  1536.     cmp.l    #0,d0
  1537.     Rbeq    g_err
  1538.     Dmove    var_buffer,a1
  1539.     movem.l    (sp)+,a0
  1540.     move.w    (a0),d3
  1541.     move.w    (a0)+,(a1)+
  1542.     beq    enubl1
  1543. ubl2:    move.b    (a0)+,d0
  1544.     cmp.b    #' ',d0
  1545.     bne    ubl3
  1546.     sub.w    #1,d3
  1547.     bra    ubl2
  1548. ubl3:    move.b    d0,(a1)+
  1549. ubl4:    move.b    (a0)+,(a1)+
  1550.     bne    ubl4
  1551.     sub.l    #1,a1
  1552. ubl5:    cmp.b    #' ',-(a1)
  1553.     bne    enubl
  1554.     move.b    #0,(a1)
  1555.     sub.w    #1,d3
  1556.     bra    ubl5
  1557. enubl:    Dmove    var_buffer,a0
  1558.     move.w    d3,(a0)
  1559. enubl1:    movem.l    (sp)+,a4-a6
  1560.     moveq    #2,d2
  1561.     Dmove    var_buffer,d3
  1562.     rts
  1563. ******* CRYPT$(string)
  1564. L_cd    equ    16
  1565. L16
  1566. cd:    move.l    (a3)+,a0
  1567.     movem.l    a3-a6,-(sp)
  1568.     movem.l    a0,-(sp)
  1569.     move.w    (a0),d0
  1570.     Rbeq    cr_err
  1571.     Rbsr    getmem
  1572.     cmp.l    #0,d0
  1573.     Rbeq    cr_err
  1574.     Dmove    var_buffer,a1
  1575.     movem.l    (sp)+,a0
  1576.     move.w    (a0)+,(a1)+
  1577.     bsr    code
  1578.     movem.l    (sp)+,a3-a6
  1579.     moveq    #2,d2
  1580.     Dmove    var_buffer,d3
  1581.     rts
  1582. code:    moveq    #0,d0
  1583. cl2:    Dlea    y,a2
  1584.     move.b    #0,d0
  1585.     cmp.b    #0,(a0)
  1586.     bne    cl
  1587.     move.b    #0,(a1)+
  1588.     rts
  1589. cl3:    add.l    #1,a2
  1590. cl:    move.b    (a0),d2
  1591.     move.b    (a2),d3
  1592.     cmp.b    d2,d3
  1593.     beq    conv
  1594.     add.b    #1,d0
  1595.     cmp.w    #yend-y,d0
  1596.     beq    cop
  1597.     bra    cl3
  1598. cop:    move.b    (a0)+,(a1)+
  1599.     bra    cl2
  1600. conv:    move.b    d0,(a1)+
  1601.     add.l    #1,a0
  1602.     bra    cl2
  1603.  
  1604. ******* ENCRYPT$(string)
  1605. L_dcd    equ    17
  1606. L17
  1607. dcd:    move.l    (a3)+,a0
  1608.     movem.l    a3-a6,-(sp)
  1609.     movem.l    a0,-(sp)
  1610.     move.w    (a0),d0
  1611.     Rbeq    cr_err
  1612.     Rbsr    getmem
  1613.     cmp.l    #0,d0
  1614.     Rbeq    cr_err
  1615.     Dmove    var_buffer,a4
  1616.     movem.l    (sp)+,a0
  1617.     move.w    (a0)+,(a4)+
  1618.     bsr    decode
  1619.     movem.l    (sp)+,a3-a6
  1620.     moveq    #2,d2
  1621.     Dmove    var_buffer,d3
  1622.     rts
  1623. decode:    moveq    #0,d0
  1624. dcl2:    Dlea    y,a1
  1625.     Dlea    y2,a2
  1626.     move.b    #0,d0
  1627.     cmp.b    #0,(a0)
  1628.     bne    dcl
  1629.     move.b    #0,(a4)+
  1630.     rts
  1631. dcl3:    add.l    #1,a2
  1632.     add.l    #1,a1
  1633. dcl:    move.b    (a0),d2
  1634.     move.b    (a2),d3
  1635.     move.b    (a1),d4
  1636.     cmp.b    d2,d3
  1637.     beq    dconv
  1638.     add.b    #1,d0
  1639.     cmp.w    #y2end-y2,d0
  1640.     beq    dcop
  1641.     bra    dcl3
  1642. dcop:    move.b    d2,(a4)+
  1643.     add.l    #1,a0
  1644.     bra    dcl2
  1645. dconv:    move.b    d4,(a4)+
  1646.     add.l    #1,a0
  1647.     bra    dcl2
  1648.  
  1649. ******* EXTEND$(string,len,kind)
  1650. L_ext    equ    18
  1651. L18
  1652. ext:    movem.l    a4-a6,-(sp)
  1653.     move.l    (a3)+,d0
  1654.     Dsave    d0,kind
  1655.     Dlea    wlm,a6
  1656.     move.l    (a3)+,(a6)
  1657.     move.l    (a3)+,a0
  1658.     Dsave    a0,zw
  1659.     move.w    (a0)+,d0
  1660.     beq    eerr
  1661.     ext.l    d0
  1662.     Dsave    d0,wl
  1663.     Dmove2    wl,wlm,d0,d1
  1664.     sub.l    d0,d1
  1665.     ble    eerr
  1666.     Dmove    wlm,d0
  1667.     beq    eerr
  1668.     Rbsr    get_mem
  1669.     cmp.l    #0,d0
  1670.     beq    eerr
  1671.     Dmove2    var_buffer,kind,a1,d0
  1672.     cmp.l    #0,d0
  1673.     beq    extend
  1674.     bpl    rit_ext
  1675.     bra    lef_ext
  1676. leave_ext:
  1677.     movem.l    (sp)+,a4-a6
  1678.     moveq    #2,d2
  1679.     Dmove    var_buffer,d3
  1680.     rts
  1681. eerr:    movem.l    (sp)+,a4-a6
  1682.     Dmove    zw,d3
  1683.     Rbsr    err_get
  1684.     moveq    #2,d2
  1685.     rts
  1686. extend:    Dmove2    wlm,wl,d1,d0
  1687.     sub.l    d0,d1
  1688.     lsr.l    #1,d1
  1689.     Dsave    d1,wl1
  1690.     Dmove    wlm,d0
  1691.     sub.l    d1,d0
  1692.     Dmove    wl,d1
  1693.     sub.l    d1,d0
  1694.     Dsave    d0,wl2
  1695.     Dmove2    var_buffer,zw,a1,a0
  1696.     add.l    #2,a0
  1697.     Dmove    wlm,d0
  1698.     move.w    d0,(a1)+
  1699.     Dmove    wl1,d0
  1700.     beq    elne
  1701.     sub.l    #1,d0
  1702. elo:    move.b    #' ',(a1)+
  1703.     dbra    d0,elo
  1704. elne:    Dmove.l    wl,d0
  1705.     sub.l    #1,d0
  1706. elo2:    move.b    (a0)+,(a1)+
  1707.     dbra    d0,elo2
  1708.     Dmove    wl2,d0
  1709.     beq    elne2
  1710.     sub.l    #1,d0
  1711. elo3:    move.b    #' ',(a1)+
  1712.     dbra    d0,elo3
  1713. elne2:    move.b    #0,(a1)+
  1714.     bra    leave_ext
  1715. lef_ext:
  1716.     Dmove2    wlm,wl,d1,d0
  1717.     sub.l    d0,d1
  1718.     sub.l    #1,d1
  1719.     Dmove2    var_buffer,wlm,a1,d3
  1720.     move.w    d3,(a1)+
  1721. lel:    move.b    #' ',(a1)+
  1722.     dbra    d1,lel
  1723.     Dmove    zw,a0
  1724.     move.w    (a0)+,d0
  1725.     ext.l    d0
  1726. lel2:    move.b    (a0)+,(a1)+
  1727.     dbra    d0,lel2
  1728.     bra    leave_ext
  1729. rit_ext:
  1730.     Dmove3    wlm,wl,var_buffer,d1,d0,a1
  1731.     move.l    d1,d3
  1732.     sub.l    d0,d1
  1733.     sub.l    #1,d1
  1734.     move.w    d3,(a1)+
  1735.     Dmove    zw,a0
  1736.     move.w    (a0)+,d0
  1737.     ext.l    d0
  1738.     sub.l    #1,d0
  1739. rel:    move.b    (a0)+,(a1)+
  1740.     dbra    d0,rel
  1741. rel2:    move.b    #' ',(a1)+
  1742.     dbra    d1,rel2
  1743.     move.b    #0,(a1)+
  1744.     bra    leave_ext
  1745. ******* EXVAL$(val,len,blank/null$)
  1746. L_exv1    equ    19
  1747. L19
  1748. exv1:    movem.l    a4-a6,-(sp)
  1749.     Dsave    #0,blanull
  1750.     move.l    (a3)+,a0
  1751.     add.l    #2,a0
  1752.     cmp.b    #'0',(a0)
  1753.     beq    go_exv
  1754.     Dsave    #1,blanull
  1755. go_exv:    movem.l    (sp)+,a4-a6
  1756.     Rbra    L_exv
  1757. ******* EXVAL$(val,len)
  1758. L_exv    equ    20
  1759. L20
  1760. exv:    movem.l    a4-a6,-(sp)
  1761.     Dlea    wlm,a6
  1762.     move.l    (a3)+,(a6)
  1763.     add.l    #1,(a6)
  1764.     bsr    mstr
  1765.     Dsave    a0,zw
  1766.     move.w    (a0)+,d0
  1767.     ext.l    d0
  1768.     Dsave    d0,wl
  1769.     Dmove2    wl,wlm,d0,d1
  1770.     sub.l    d0,d1
  1771.     ble    xerr
  1772.     Dmove    wlm,d0
  1773.     beq    xerr
  1774.     Rbsr    get_mem
  1775.     cmp.l    #0,d0
  1776.     beq    xerr
  1777.     Dmove    var_buffer,a1
  1778.     bsr    exvend
  1779.     bsr    vorz
  1780.     Dlea    str,a0
  1781.     move.l    #0,(a0)+
  1782.     move.l    #0,(a0)+
  1783.     move.l    #0,(a0)+
  1784.     move.l    #0,(a0)
  1785.     movem.l    (sp)+,a4-a6
  1786.     moveq    #2,d2
  1787.     Dmove    var_buffer,d3
  1788.     rts
  1789. xerr:    movem.l    (sp)+,a4-a6
  1790.     Dmove    zw,d3
  1791.     moveq    #2,d2
  1792.     rts
  1793. vorz:    Dmove    var_buffer,a0
  1794.     add.l    #2,a0
  1795. vorzl:    cmp.b    #' ',(a0)
  1796.     beq    vorzplus
  1797.     cmp.b    #'-',(a0)
  1798.     beq    vorzminus
  1799.     add.l    #1,a0
  1800.     bra    vorzl
  1801. vorzplus:
  1802.     move.b    #'0',(a0)
  1803.     Dmove    var_buffer,a0
  1804.     add.l    #2,a0
  1805.     move.b    #' ',(a0)
  1806.     rts
  1807. vorzminus:
  1808.     move.b    #'0',(a0)
  1809.     Dmove    var_buffer,a0
  1810.     add.l    #2,a0
  1811.     move.b    #'-',(a0)
  1812.     rts
  1813. exvend:    Dmove    blanull,d0
  1814.     lea    velo+3(pc),a1
  1815.     cmp.l    #0,d0
  1816.     beq    no_ch
  1817.     move.b    #' ',(a1)
  1818.     bra    ych
  1819. no_ch:    move.b    #'0',(a1)
  1820. ych:    Dmove2    wlm,wl,d1,d0
  1821.     sub.l    d0,d1
  1822.     Dsave    d1,wl1
  1823.     Dmove2    var_buffer,zw,a1,a0
  1824.     add.l    #2,a0
  1825.     Dmove    wlm,d0
  1826.     move.w    d0,(a1)+
  1827.     Dmove    wl1,d0
  1828.     beq    velne
  1829.     sub.l    #1,d0
  1830. velo:    move.b    #'0',(a1)+
  1831.     dbra    d0,velo
  1832. velne:    Dmove    wl,d0
  1833.     sub.l    #1,d0
  1834. velo2:    move.b    (a0)+,(a1)+
  1835.     dbra    d0,velo2
  1836.     move.b    #0,(a1)+
  1837.     rts
  1838. mstr:    move.l    (a3)+,d0
  1839.     Dlea    str+2,a0
  1840.     bsr    _bin_to_dec
  1841.     Dlea    str+2,a0
  1842.     move.w    #0,d3
  1843. mstrl:    cmp.b    #0,(a0)+
  1844.     beq    mstrend
  1845.     add.w    #1,d3
  1846.     bra    mstrl
  1847. mstrend    Dlea    str,a0
  1848.     move.w    d3,(a0)
  1849.     rts
  1850. _bin_to_dec:
  1851.     tst.l    d0
  1852.     beq    _bin_dec6
  1853.     bmi    _bin_dec1
  1854.     neg.l    d0
  1855.     move.b    #' ',(a0)+
  1856.     bra    _bin_dec2
  1857. _bin_dec1:
  1858.     move.b    #'-',(a0)+
  1859. _bin_dec2:
  1860.     Rbsr    bin_dec2
  1861.     sub.l    #2,a2
  1862.     rts
  1863. _bin_dec6:
  1864.     neg.b    d0
  1865.     addi.b    #$30,d0
  1866.     move.b    d0,(a0)+
  1867.     rts
  1868. ******* GET AREA(string)
  1869. L_geta    equ    21
  1870. L21
  1871. geta:    movem.l    a4-a6,-(sp)
  1872.     move.l    (a3)+,a0
  1873.     move.w    (a0)+,d0
  1874.     cmp.w    #0,d0
  1875.     beq    nulnul
  1876.     Dsave    a0,ber
  1877.     cmp.b    #"-",(a0)
  1878.     beq    berbis
  1879.     cmp.b    #"-",(a0,d0.w)
  1880.     beq    bisber
  1881. berlop:    cmp.b    #0,(a0)
  1882.     beq    berfl
  1883.     cmp.b    #"-",(a0)+
  1884.     bne    berlop
  1885.     Dlea    bereich1,a1
  1886.     Dmove    ber,a0
  1887. cop1:    move.b    (a0)+,(a1)+
  1888.     cmp.b    #"-",(a0)
  1889.     bne    cop1
  1890.     move.b    #0,(a1)+
  1891.     add.l    #1,a0
  1892.     Dlea    bereich2,a1
  1893. cop2:    move.b    (a0)+,(a1)+
  1894.     cmp.b    #0,(a0)
  1895.     bne    cop2
  1896.     move.b    #0,(a1)+
  1897.     bra    makeval
  1898. berfl:    Dlea    bereich1,a1
  1899.     Dmove    ber,a0
  1900. cop3:    move.b    (a0)+,(a1)+
  1901.     cmp.b    #0,(a0)
  1902.     bne    cop3
  1903.     move.b    #0,(a1)+
  1904.     Dlea    bereich2,a1
  1905.     Dmove    ber,a0
  1906. cop4:    move.b    (a0)+,(a1)+
  1907.     cmp.b    #0,(a0)
  1908.     bne    cop4
  1909.     move.b    #0,(a1)+
  1910.     bra    makeval
  1911. nulnul:    Dlea    bereich1,a0
  1912.     Dlea    bereich2,a1
  1913.     move.b    #0,(a0)+
  1914.     move.b    #0,(a1)+
  1915.     bra    makeval
  1916. berbis:    Dlea    bereich1,a1
  1917.     move.b    #0,(a1)+
  1918.     Dlea    bereich2,a1
  1919.     Dmove    ber,a0
  1920.     add.l    #1,a0
  1921. cop5:    move.b    (a0)+,(a1)+
  1922.     cmp.b    #0,(a0)
  1923.     bne    cop5
  1924.     move.b    #0,(a1)+
  1925.     bra    makeval
  1926. bisber:    Dlea    bereich2,a1
  1927.     move.b    #0,(a1)+
  1928.     Dlea    bereich1,a1
  1929.     Dmove    ber,a0
  1930.     add.l    #1,a0
  1931. cop6:    move.b    (a0)+,(a1)+
  1932.     cmp.b    #0,(a0)
  1933.     bne    cop6
  1934.     move.b    #0,(a1)+
  1935. makeval:
  1936.     Dsave2    #0,#0,w_ast,w_aend
  1937.     Dlea    bereich1,a0
  1938.     cmp.b    #0,(a0)
  1939.     beq    mv2
  1940.     Rbsr    dec_to_bin
  1941.     Dsave    d0,w_ast
  1942. mv2:    Dlea    bereich2,a0
  1943.     cmp.b    #0,(a0)
  1944.     beq    mvret
  1945.     Rbsr    dec_to_bin
  1946.     Dsave    d0,w_aend
  1947. mvret:    movem.l    (sp)+,a4-a6
  1948.     rts
  1949. ******* RESET AREA
  1950. L_resa    equ    22
  1951. L22
  1952. resa:    Dsave2    #0,#0,w_ast,w_aend
  1953.     rts
  1954. ******* AREA START
  1955. L_afirst    equ    23
  1956. L23
  1957. afirst:    moveq    #0,d2
  1958.     Dmove    w_ast,d3
  1959.     rts
  1960. ******* AREA END
  1961. L_alast    equ    24
  1962. L24
  1963. alast:    moveq    #0,d2
  1964.     Dmove    w_aend,d3
  1965.     rts
  1966. ******* MWAIT
  1967. L_mwait    equ    25
  1968. L25
  1969. mw:    movem.l    a3-a6,-(sp)
  1970. mwl1:    Rbsr    tests
  1971.     SyCall    MouseKey
  1972.     tst.w    d1
  1973.     bne    mwl1
  1974. mwl2:    Rbsr    tests
  1975.     SyCall    MouseKey
  1976.     tst.w    d1
  1977.     beq    mwl2
  1978.     move.w    d1,d0
  1979. mwl3:    Rbsr    tests
  1980.     SyCall    MouseKey
  1981.     cmp.w    d0,d1
  1982.     beq    mwl3
  1983.     move.w    d1,d3
  1984.     ext.l    d3
  1985.     moveq    #0,d2
  1986.     movem.l    (sp)+,a3-a6
  1987.     rts
  1988. ******* KEYWAIT(string)
  1989. L_twait    equ    26
  1990. L26
  1991. twait:    moveq    #0,d4
  1992.     moveq    #0,d1
  1993.     SyCall    ClearKey
  1994.     move.l    (a3)+,a0
  1995.     cmp.w    #0,(a0)+
  1996.     bne    tast
  1997.     move.l    #1,d4
  1998.     bra    nokey
  1999. tast:    Dsave    a0,wkey
  2000. nokey:    Rbsr    tests
  2001.     SyCall    Inkey
  2002.     cmp.w    #0,d1
  2003.     beq    nokey
  2004.     cmp.l    #1,d4
  2005.     beq    twex
  2006.     Dmove    wkey,a0
  2007. tnext:    move.b    (a0)+,d2
  2008.     ext.w    d2
  2009.     cmp.w    d1,d2
  2010.     beq    twex
  2011.     cmp.b    #0,(a0)
  2012.     beq    nokey
  2013.     bra    tnext
  2014. twex:    moveq    #0,d3
  2015.     move.b    d1,d3
  2016.     ext.w    d3
  2017.     ext.l    d3
  2018.     moveq    #0,d2
  2019.     rts
  2020.  
  2021. ; global subroutines
  2022. ;
  2023. getmem    equ    27
  2024. L27
  2025.     ext.l    d0
  2026.     Rbra    get_mem
  2027. get_mem    equ    28
  2028. L28
  2029.     add.l    #3,d0
  2030.     move.l    d0,d3
  2031.     movem.l    d1-d7/a0-a6,-(sp)
  2032.     Dmove    rout,d7
  2033.     cmp.l    #1,d7
  2034.     bne    no_r
  2035.     add.l    #2,d3
  2036. no_r:    and.w    #$fffe,d3
  2037.     Rjsr    L_Demande
  2038.     lea    2(a1,d3.w),a1
  2039.     Dmove    reg_a5,a5
  2040.     move.l    a1,HiChaine(a5)
  2041.     Dsave    a0,var_buffer
  2042.     movem.l    (sp)+,d1-d7/a0-a6
  2043.     rts
  2044.  
  2045. dz    equ    29
  2046. L29
  2047.     move.w    (a2)+,d0
  2048.     Rbsr    bin_to_dec
  2049.     move.w    (a2)+,d0
  2050.     Rbsr    bin_to_dec
  2051.     move.w    (a2)+,d0
  2052.     Rbsr    bin_to_dec
  2053.     move.w    (a2)+,d0
  2054.     Rbsr    bin_to_dec
  2055.     move.w    (a2)+,d0
  2056.     Rbsr    bin_to_dec
  2057.     move.w    (a2)+,d0
  2058.     Rbsr    bin_to_dec
  2059.     rts
  2060.  
  2061. bin_to_dec    equ    30
  2062. L30
  2063.     and    #15,d0
  2064.     ext.l    d0
  2065.     tst.l    d0
  2066.     Rbeq    bin_dec6
  2067.     neg.l    d0
  2068.     Rbra    bin_dec2
  2069. bin_dec2    equ    31
  2070. L31
  2071.     Dlea    decathlon,a1
  2072.     clr.w    d1
  2073. bin_dec3:
  2074.     move.l    (a1)+,d2
  2075.     Rbeq    bin_dec6
  2076.     moveq    #-1,d4
  2077. bin_dec4:
  2078.     add.l    d2,d0
  2079.     dbgt    d4,bin_dec4
  2080.     sub.l    d2,d0
  2081.     addq.w    #1,d4
  2082.     bne    bin_dec5
  2083.     tst.w    d1
  2084.     beq    bin_dec3
  2085. bin_dec5:
  2086.     moveq    #-1,d1
  2087.     neg.b    d4
  2088.     addi.b    #$30,d4
  2089.     move.b    d4,(a0)+
  2090.     bra    bin_dec3
  2091. bin_dec6    equ    32
  2092. L32
  2093.     neg.b    d0
  2094.     addi.b    #$30,d0
  2095.     move.b    d0,(a0)+
  2096.     add.l    #2,a2
  2097.     rts
  2098. uninit    equ    33
  2099. L33
  2100.     Dsave4    #0,#0,#0,#0,jpattern,jbuffer,string,p_case
  2101.     move.l    #389,d4
  2102.     Mlea    p1_jbuffer,a4
  2103. init_loop:
  2104.     move.l    #0,(a4)+
  2105.     dbra    d4,init_loop
  2106.     moveq    #0,d0
  2107.     moveq    #0,d1
  2108.     moveq    #0,d4
  2109.     rts
  2110.  
  2111. g_err    equ    34
  2112. L34
  2113.     movem.l    (sp)+,a0
  2114.     movem.l    (sp)+,a4-a6
  2115.     move.l    a0,d3
  2116.     Rbsr    err_get
  2117.     moveq    #2,d2
  2118.     rts
  2119.  
  2120. cr_err    equ    35
  2121. L35
  2122.     movem.l    (sp)+,a0
  2123.     movem.l    (sp)+,a3-a6
  2124.     move.l    a0,d3
  2125.     Rbsr    err_get
  2126.     moveq    #2,d2
  2127.     rts
  2128.  
  2129. dec_to_bin    equ    36
  2130. L36
  2131.     moveq    #0,d0
  2132.     moveq    #0,d2
  2133. dec_loop:
  2134.     move.b  (a0)+,d2
  2135.     tst.b    d2
  2136.     beq    dec_end
  2137.     cmpi.b    #'0',d2
  2138.     blo    dec_end
  2139.     cmpi.b    #'9',d2
  2140.     bhi    dec_end
  2141.     add.l    d0,d0
  2142.     move.l    d0,d1
  2143.     add.l    d0,d0
  2144.     add.l    d0,d0
  2145.     add.l    d1,d0
  2146.     subi.b    #$30,d2
  2147.     add.l    d2,d0
  2148.     bra    dec_loop
  2149. dec_end:
  2150.     subq.l    #1,a0
  2151.     rts
  2152.  
  2153. *******    GET NUMBER(zahl,len)
  2154. L_zahl    equ    37
  2155. L37
  2156. get_nr:    movem.l    a3-a6,-(sp)
  2157.     Rbsr    uninit
  2158.     movem.l    (sp)+,a3-a6
  2159.     move.l    (a3)+,d1
  2160.     cmp.l    #0,d1
  2161.     bne    no_lim
  2162.     move.l    #254,d1
  2163. no_lim:    move.l    (a3)+,d0
  2164.     Dsave3    d1,d0,#1,zahllen,zahlval,rout
  2165.     movem.l    a3-a6,-(sp)
  2166.     Dmove    zahllen,d3
  2167. blprt:    Dlea    blank,a1
  2168.     WiCall    Print
  2169.     dbra    d3,blprt
  2170.     Dmove    zahlval,d0
  2171.     move.l    d0,-(a3)
  2172. cont:    Dmove    zahllen,d0
  2173.     move.l    d0,-(a3)
  2174.     Dlea    blank,a0
  2175.     move.l    a0,-(a3)
  2176.     movem.l    a0,-(sp)
  2177.     Dlea    str,a0
  2178.     move.l    #0,(a0)+
  2179.     move.l    #0,(a0)+
  2180.     move.l    #0,(a0)+
  2181.     move.l    #0,(a0)+
  2182.     movem.l    (sp)+,a0
  2183.     Rbsr    L_exv1
  2184.     Dsave    d3,zahlstring
  2185.     movem.l    d3,-(sp)
  2186.     Dmove    zahllen,d3
  2187. cuprt:    Dlea    culeft,a1
  2188.     WiCall    Print
  2189.     dbra    d3,cuprt
  2190.     movem.l    (sp)+,d3
  2191.     move.l    d3,a1
  2192.     add.l    #2,a1
  2193.     WiCall    Print
  2194.     Dmove    zahlstring,a0
  2195.     move.l    a0,-(a3)
  2196.     Rbsr    L_ubl
  2197.     Dsave    d3,realstring
  2198. getkey:    moveq    #0,d1
  2199.     Dlea    zahlen,a0
  2200.     move.l    a0,-(a3)
  2201.     Rbsr    L_twait
  2202.     cmp.w    #8,d1
  2203.     beq    backspace
  2204.     cmp.w    #13,d1
  2205.     beq    ready
  2206.     Dmove2    realstring,zahllen,a0,d2
  2207.     move.w    (a0),d0
  2208.     move.w    d0,d7
  2209.     ext.l    d7
  2210.     cmp.l    d2,d7
  2211.     bge    getkey
  2212.     add.w    #1,d0
  2213.     move.w    d0,(a0)+
  2214.     sub.l    #1,a0
  2215.     move.b    d1,(a0,d0.w)
  2216.     add.l    #1,a0
  2217.     move.b    #0,(a0,d0.w)
  2218.     bra    prep
  2219. ready:    Dmove    realstring,a0
  2220.     add.l    #2,a0
  2221.     bsr    dec_to_vbin
  2222.     move.l    d0,d3
  2223.     moveq    #0,d2
  2224.     movem.l    d2/d3,-(sp)
  2225.     Dsave    #0,rout
  2226.     Dlea    crlf,a1
  2227.     WiCall    Print
  2228.     movem.l    (sp)+,d2/d3
  2229.     movem.l    (sp)+,a3-a6
  2230.     rts
  2231. backspace:
  2232.     Dmove    realstring,a0
  2233.     move.w    (a0),d0
  2234.     cmp.w    #0,d0
  2235.     beq    getkey
  2236.     sub.w    #1,d0
  2237.     move.w    d0,(a0)+
  2238.     move.b    #0,(a0,d0.w)
  2239. prep:    Dmove    realstring,a0
  2240.     add.l    #2,a0
  2241.     bsr    dec_to_vbin
  2242.     Dsave    d0,zahlval
  2243.     movem.l    d0,-(a3)
  2244.     bra    cont
  2245. dec_to_vbin:
  2246.     moveq    #0,d0
  2247.     moveq    #0,d2
  2248.     moveq    #0,d7
  2249. dec_vloop:
  2250.     move.b  (a0)+,d2
  2251.     tst.b    d2
  2252.     beq    dec_vend
  2253.     cmpi.b    #'-',d2
  2254.     bne    no_below
  2255.     move.l    #-1,d7
  2256.     bra    dec_vloop
  2257. no_below:
  2258.     cmpi.b    #'0',d2
  2259.     blo    dec_vend
  2260.     cmpi.b    #'9',d2
  2261.     bhi    dec_vend
  2262.     add.l    d0,d0
  2263.     move.l    d0,d1
  2264.     add.l    d0,d0
  2265.     add.l    d0,d0
  2266.     add.l    d1,d0
  2267.     subi.b    #$30,d2
  2268.     add.l    d2,d0
  2269.     bra    dec_vloop
  2270. dec_vend:
  2271.     cmp.l    #0,d7
  2272.     beq    zplus
  2273.     not.l    d0
  2274.     add.l    #1,d0
  2275. zplus:    subq.l    #1,a0
  2276.     rts
  2277.  
  2278. *******    RASTPORT
  2279. L_rp    equ    38
  2280. L38
  2281. rp:    move.l    T_RastPort(a5),d3
  2282.     moveq    #0,d2
  2283.     rts
  2284. *******    CUT(string,pos,anz)
  2285. L_cut    equ    39
  2286. L39
  2287. cut:    move.l    (a3)+,d1
  2288.     move.l    (a3)+,d0
  2289.     move.l    (a3)+,a0
  2290.     Dsave    a0,cstr
  2291.     move.w    (a0),d2
  2292.     ext.l    d2
  2293.     cmp.l    #0,d2
  2294.     beq    cuterr
  2295.     cmp.l    #0,d1
  2296.     beq    cuterr
  2297.     cmp.l    #0,d0
  2298.     beq    cuterr
  2299. cutter:    move.l    d1,d7
  2300.     add.l    d0,d7
  2301.     sub.l    #1,d7
  2302.     cmp.l    d2,d7
  2303.     ble    cutok
  2304.     sub.l    #1,d1
  2305.     bra    cutter
  2306. cutok:    Dsave3    d1,d0,d2,anz,pos,clen
  2307.     sub.l    d1,d2
  2308.     move.l    d2,d0
  2309.     movem.l    d2,-(sp)
  2310.     Rbsr    get_mem
  2311.     move.l    (sp)+,d2
  2312.     Dmove2    var_buffer,cstr,a0,a1
  2313.     move.w    d2,(a0)+
  2314.     add.l    #2,a1
  2315.     move.l    #1,d0
  2316. cutl1:    Dmove    pos,d1
  2317.     cmp.l    d1,d0
  2318.     bge    cutl2
  2319.     move.b    (a1)+,(a0)+
  2320.     add.l    #1,d0
  2321.     bra    cutl1
  2322. cutl2:    Dmove2    anz,clen,d2,d3
  2323.     add.l    d2,d0
  2324.     add.l    d2,a1
  2325. cutl3:    cmp.l    d3,d0
  2326.     bgt    cutl4
  2327.     move.b    (a1)+,d7
  2328.     move.b    d7,(a0)+
  2329.     cmp.b    #0,d7
  2330.     beq    cutl4
  2331.     add.l    #1,d0
  2332.     bra    cutl3
  2333. cutl4:    Dmove    var_buffer,d3
  2334. cutex:    moveq    #2,d2
  2335.     rts
  2336. cuterr:    Dmove    cstr,d3
  2337.     bra    cutex
  2338. *******    INSERT(string,pos,string)
  2339. L_ins    equ    40
  2340. L40
  2341. insert:    move.l    (a3)+,a1
  2342.     move.l    (a3)+,d0
  2343.     move.l    (a3)+,a0
  2344.     Dsave2    a0,a1,cstr,instr
  2345.     move.w    (a0),d1
  2346.     ext.l    d1
  2347.     cmp.l    #0,d1
  2348.     beq    inerr2
  2349.     move.w    (a1),d2
  2350.     ext.l    d2
  2351.     cmp.l    #0,d2
  2352.     beq    inerr
  2353.     cmp.l    #0,d0
  2354.     beq    inerr
  2355. inl0:    sub.l    #1,d0
  2356.     cmp.l    d1,d0
  2357.     bgt    inl0
  2358.     add.l    #1,d0
  2359.     Dsave    d0,pos
  2360.     add.l    d1,d2
  2361.     move.l    d2,d0
  2362.     movem.l    d2,-(sp)
  2363.     Rbsr    get_mem
  2364.     movem.l    (sp)+,d2
  2365.     Dmove4    var_buffer,cstr,instr,pos,a0,a1,a2,d1
  2366.     add.l    #2,a1
  2367.     add.l    #2,a2
  2368.     move.w    d2,(a0)+
  2369.     move.l    #0,d0
  2370. inl:    add.l    #1,d0
  2371.     cmp.l    d0,d1
  2372.     beq    inl2
  2373.     move.b    (a1)+,(a0)+
  2374.     bra    inl
  2375. inl2:    move.b    (a2)+,d7
  2376.     cmp.b    #0,d7
  2377.     beq    inl3
  2378.     move.b    d7,(a0)+
  2379.     bra    inl2
  2380. inl3:    move.b    (a1)+,d7
  2381.     move.b    d7,(a0)+
  2382.     cmp.b    #0,d7
  2383.     bne    inl3
  2384.     Dmove    var_buffer,d3
  2385. inex:    moveq    #2,d2
  2386.     rts
  2387. inerr:    Dmove    cstr,d3
  2388.     bra    inex
  2389. inerr2:    Dmove    instr,a1
  2390.     move.w    (a1),d0
  2391.     cmp.w    #0,d0
  2392.     beq    inerr
  2393.     Rbsr    getmem
  2394.     Dmove    var_buffer,a0
  2395.     move.w    (a1)+,(a0)+
  2396.     bra    inl3
  2397.  
  2398. err_get    equ    41
  2399. L41
  2400.     move.l    d3,a0
  2401.     movem.l    a0,-(sp)
  2402.     move.w    (a0),d0
  2403.     Rbsr    getmem
  2404.     cmp.l    #0,d0
  2405.     beq    oomem
  2406.     Dmove    var_buffer,a1
  2407.     movem.l    (sp)+,a0
  2408.     move.w    (a0)+,(a1)+
  2409. err_l:    move.b    (a0)+,d7
  2410.     move.b    d7,(a1)+
  2411.     cmp.b    #0,d7
  2412.     bne    err_l
  2413.     Dmove    var_buffer,d3
  2414.     rts
  2415. oomem:    movem.l    (sp)+,a0
  2416.     movem.l    (sp)+,d0
  2417.     moveq    #24,d0
  2418.     Rjmp    L_Error
  2419. *******    DISKCHANGE
  2420. L_dc    equ    42
  2421. L42
  2422. dc:    move.b    $bfe001,d0
  2423.     and.b    #16,d0
  2424.     bne    dc
  2425.     movem.l    a6,-(sp)
  2426.     movea.l    4,a6
  2427. Wait    move.l    #500,d1
  2428. Wait2    Rbsr    tests
  2429.     sub.l    #1,d1
  2430.     bne    Wait2
  2431.     jsr    -120(a6)
  2432.     lea    $196(a6),a0
  2433.     Dlea    Validate,a1
  2434.     jsr    -276(a6)
  2435.     move.l    d0,d2
  2436.     bne    Check
  2437.     lea    $1a4(a6),a0
  2438.     Dlea    Validate,a1
  2439.     jsr    -276(a6)
  2440.     move.l    d0,d2
  2441. Check    jsr    -126(a6)
  2442.     tst.l    d2
  2443.     bne    Wait
  2444.     movem.l    (sp)+,a6
  2445.     rts
  2446. *******    WAIT AMIGA
  2447. L_tam    equ    43
  2448. L43
  2449. _test:    Rbsr    tests
  2450.     SyCall    Inkey
  2451.     cmp.w    #0,d1
  2452.     beq    _test
  2453.     swap    d1
  2454.     move.w    d1,d0
  2455.     and.w    #%1100000000000000,d0
  2456.     beq    _test
  2457.     move.b    d1,d3
  2458.     ext.w    d3
  2459.     ext.l    d3
  2460.     moveq    #0,d2
  2461.     rts
  2462. *******    GET STRING$(string,len)
  2463. L_gets    equ    44
  2464. L44
  2465. _gets:    Rbsr    L_getxypos
  2466.     move.l    (a3)+,d2
  2467.     move.l    (a3)+,a0
  2468.     Dsave3    a0,a0,a0,gstring,fstring,ustring
  2469.     move.w    (a0),d3
  2470.     ext.l    d3
  2471.     Dsave4    d3,d1,d0,d2,pos,xpos,ypos,len
  2472.     cmp.l    d2,d3
  2473.     bgt    inp_err
  2474.     Dlea    leer,a0
  2475.     move.l    #0,(a0)
  2476.     SyCall    ClearKey
  2477.     Dsave    #1,rout
  2478.     bra    print_and_pos
  2479. s_input:
  2480.     Rbsr    tests
  2481.     SyCall    Inkey
  2482.     cmp.b    #115,$bfec01
  2483.     beq    s_del
  2484.     cmp.w    #0,d1
  2485.     beq    s_input
  2486.     moveq    #0,d7
  2487.     move.w    d1,d7
  2488.     swap    d7
  2489.     and.w    #%1100000000000000,d7
  2490.     bne    isolate
  2491.     cmp.w    #28,d1
  2492.     beq    curite
  2493.     cmp.w    #29,d1
  2494.     beq    c_left
  2495.     cmp.w    #13,d1
  2496.     beq    return
  2497.     cmp.w    #8,d1
  2498.     beq    bspace
  2499. isolate:
  2500.     Dlea    taste,a1
  2501.     add.l    #2,a1
  2502.     move.b    d1,(a1)
  2503.     swap    d1
  2504.     move.w    d1,d0        * Isolate AMIGA keys
  2505.     and.w    #%1100000000000000,d0
  2506.     beq    addtaste
  2507.     cmp.b    #19,d1        * R
  2508.     beq    recall          hole uebergabe-string
  2509.     cmp.b    #33,d1        * S
  2510.     beq    push          sichere string
  2511.     cmp.b    #22,d1        * U
  2512.     beq    pull          hole gesicherten string
  2513.     cmp.b    #50,d1        * X
  2514.     beq    s_clear          loesche string
  2515.     cmp.b    #35,d1        * F
  2516.     beq    one_pos          pos 1
  2517.     cmp.b    #40,d1        * L
  2518.     beq    last_pos      pos x
  2519.     bra    s_input
  2520. one_pos:
  2521.     Dsave    #0,pos
  2522.     bra    posit
  2523. last_pos:
  2524.     Dmove2    gstring,len,a0,d1
  2525.     move.w    (a0),d0
  2526.     ext.l    d0
  2527.     cmp.l    d0,d1
  2528.     beq    over
  2529. slp:    Dsave    d0,pos
  2530.     bra    posit
  2531. over:    Dmove    len,d0
  2532.     bra    slp
  2533. s_del:    Dmove2    gstring,pos,a0,d0
  2534.     move.l    a0,-(a3)
  2535.     add.l    #1,d0
  2536.     move.l    d0,-(a3)
  2537.     move.l    #1,-(a3)
  2538.     Rbsr    L_cut
  2539.     Dsave    d3,gstring
  2540.     move.b    #0,$bfec01
  2541.     Dmove    pos,d0
  2542.     sub.l    #1,d0
  2543.     Dsave    d0,pos
  2544.     bra    print_and_pos
  2545. curite:
  2546.     Dmove2    pos,gstring,d0,a0
  2547.     move.w    (a0),d1
  2548.     ext.l    d1
  2549.     cmp.l    d1,d0
  2550.     bge    s_input
  2551.     add.l    #1,d0
  2552.     Dsave    d0,pos
  2553.     bra    posit
  2554. c_left:    Dmove    pos,d0
  2555.     cmp.l    #0,d0
  2556.     beq    s_input
  2557.     sub.l    #1,d0
  2558.     Dsave    d0,pos
  2559.     bra    posit
  2560. bspace:    Dmove2    gstring,pos,a0,d0
  2561.     move.l    a0,-(a3)
  2562.     cmp.l    #0,d0
  2563.     beq    s_input
  2564.     move.l    d0,-(a3)
  2565.     move.l    #1,-(a3)
  2566.     Rbsr    L_cut
  2567.     Dsave    d3,gstring
  2568.     Dmove    pos,d0
  2569.     sub.l    #1,d0
  2570.     Dsave    d0,pos
  2571.     bra    print_and_pos
  2572. recall:    Dmove    fstring,a0
  2573.     move.w    (a0),d0
  2574.     ext.l    d0
  2575.     Dsave2    d0,a0,pos,gstring
  2576.     bra    print_and_pos
  2577. push:    Dmove    gstring,a0
  2578.     Dsave    a0,ustring
  2579.     bra    s_input
  2580. pull:    Dmove    ustring,a0
  2581.     move.w    (a0),d0
  2582.     ext.l    d0
  2583.     Dsave2    d0,a0,pos,gstring
  2584.     bra    print_and_pos
  2585. s_clear:
  2586.     Dsave    #0,pos
  2587.     Dlea    leer,a0
  2588.     Dsave    a0,gstring
  2589.     bra    print_and_pos
  2590. print_and_pos:
  2591.     Dmove2    xpos,ypos,d1,d2
  2592.     WiCall    Locate
  2593.     Dmove    len,d7
  2594.     sub.l    #1,d7
  2595.     bmi    p_loc
  2596. clprint:
  2597.     movem.l    d7,-(sp)
  2598.     Dlea    blank,a1
  2599.     WiCall    Print
  2600.     movem.l    (sp)+,d7
  2601.     dbra    d7,clprint
  2602.     moveq    #0,d7
  2603. p_loc:    Dmove2    xpos,ypos,d1,d2
  2604.     WiCall    Locate
  2605.  
  2606.     Mlea    p2_jbuffer,a1
  2607.     move.l    #129,d7
  2608. clrlop:    move.l    #0,(a1)+
  2609.     dbra    d7,clrlop
  2610.     Dmove    gstring,a1
  2611.     Mlea    p2_jbuffer,a2
  2612.     move.w    (a1)+,d7
  2613.     sub.w    #1,d7
  2614.     bmi    posit
  2615. pcl:    move.b    (a1)+,(a2)+
  2616.     dbra    d7,pcl
  2617.     Mlea    p2_jbuffer,a1
  2618.     moveq    #0,d7
  2619.  
  2620.     WiCall    Print
  2621. posit:    Dmove2    xpos,ypos,d1,d2
  2622.     WiCall    Locate
  2623.     Dmove    pos,d7
  2624.     cmp.l    #0,d7
  2625.     ble    _s_input
  2626.     sub.l    #1,d7
  2627. pos_loop:
  2628.     movem.l    d7,-(sp)
  2629.     Dlea    curight,a1
  2630.     WiCall    Print
  2631.     movem.l    (sp)+,d7
  2632.     dbra    d7,pos_loop
  2633.     bra    s_input
  2634. _s_input:
  2635.     Dsave    #0,pos
  2636.     bra    s_input
  2637. ap:    Dsave    #0,pos
  2638. addtaste:
  2639.     Dmove    pos,d0
  2640.     cmp.l    #0,d0
  2641.     blt    ap
  2642. ap2:    Dmove    gstring,a0
  2643.     move.w    (a0),d7
  2644.     ext.l    d7
  2645.     cmp.l    #0,d7
  2646.     bne    ap3
  2647.     Dsave    #1,pos
  2648. ap3:    Dmove    len,d6
  2649.     cmp.l    d6,d7
  2650.     bge    s_input
  2651.     Dmove    pos,d0
  2652.     add.l    #1,d0
  2653.     Dlea    taste,a1
  2654.     add.l    #2,a1
  2655.     Dlea    all_buts,a0
  2656. _erl:    cmp.b    #0,(a0)
  2657.     beq    s_input
  2658.     cmp.b    (a0)+,(a1)+
  2659.     beq    _er
  2660.     sub.l    #1,a1
  2661.     bra    _erl
  2662. _er:    Dmove    gstring,a0
  2663.     Dlea    taste,a1
  2664.     move.l    a0,-(a3)
  2665.     move.l    d0,-(a3)
  2666.     move.l    a1,-(a3)
  2667.     Rbsr    L_ins
  2668.     Dsave    d3,gstring
  2669.     bra    print_and_pos
  2670. return:    Dsave    #0,rout
  2671.     Dmove    gstring,d3
  2672.     moveq    #2,d2
  2673. crret:    movem.l    d2-d3,-(sp)
  2674.     Dlea    crlf,a1
  2675.     WiCall    Print
  2676.     movem.l    (sp)+,d2-d3
  2677.     rts
  2678. inp_err:
  2679.     Dsave    #0,rout
  2680.     Dlea    leer,a0
  2681.     move.l    a0,d3
  2682.     move.l    #2,d2
  2683.     bra    crret
  2684. *******    WAIT EVENT
  2685. L_we    equ    45
  2686. L45
  2687. we:    SyCall    ClearKey
  2688. waiter:    Rbsr    tests
  2689.     SyCall    Inkey
  2690.     tst.w    d1
  2691.     bne    wexit
  2692.     SyCall    MouseKey
  2693.     tst.w    d1
  2694.     beq    waiter
  2695. wexit:    rts
  2696. *******    SPREAD "string",richtung,delay
  2697. L_spr    equ    46
  2698. L46
  2699. spr:    move.l    (a3)+,d2
  2700.     move.l    (a3)+,d1
  2701.     move.l    (a3)+,a0
  2702.     move.w    (a0),d0
  2703.     beq    sprend
  2704.     cmp.l    #0,d2
  2705.     bpl    d1ok
  2706.     move.l    #10,d2
  2707. d1ok:    Dsave    d2,timer
  2708.     cmp.l    #0,d1
  2709.     bpl    spr2
  2710.     movem.l    a3-a6,-(sp)
  2711.     move.l    DosBase(a5),a6
  2712.     Dsave    a0,string
  2713.     Rbsr    get_mem
  2714.     Dmove    string,a0
  2715.     move.w    (a0)+,d0
  2716.     ext.l    d0
  2717.     move.l    #2,d3
  2718.     move.l    d0,d1
  2719.     lsr.l    #1,d0
  2720.     move.l    d0,d2
  2721.     sub.l    #1,d2
  2722.     move.l    d2,d4
  2723.     lsl.l    #1,d0
  2724.     cmp.l    d0,d1
  2725.     beq    evn
  2726.     add.l    #1,d2
  2727.     move.l    d2,d4
  2728.     move.l    #1,d3
  2729. evn:    Dmove    var_buffer,a1
  2730.     sub.l    #1,d3
  2731. sclop:    add.l    d2,a0
  2732.     movem.l    d3,-(sp)
  2733. scl:    move.b    (a0)+,(a1)+
  2734.     dbra    d3,scl
  2735.     Dmove    var_buffer,a1
  2736.     movem.l    d2-d4,-(sp)
  2737.     WiCall    Centre
  2738.     movem.l    (sp)+,d2-d4
  2739.     Rbsr    tests
  2740.     movem.l    d0-d1,-(sp)
  2741.     Dmove    timer,d1
  2742.     jsr    -198(a6)
  2743.     movem.l    (sp)+,d0-d1
  2744.     sub.l    #1,d2
  2745.     movem.l    (sp)+,d3
  2746.     add.l    #2,d3
  2747.     Dmove2    var_buffer,string,a1,a0
  2748.     add.l    #2,a0
  2749.     cmp.l    #-1,d2
  2750.     bne    sclop
  2751. sp2end:    Rbsr    uninit
  2752.     movem.l    (sp)+,a3-a6
  2753. sprend:    rts
  2754. spr2:    movem.l    a3-a6,-(sp)
  2755.     move.l    DosBase(a5),a6
  2756.     Dsave    a0,string
  2757.     move.w    (a0)+,d0
  2758.     ext.l    d0
  2759.     move.l    d0,d3
  2760.     add.l    #1,d3
  2761.     lsr    #1,d0
  2762.     sub.l    #1,d0
  2763.     move.l    #1,d2
  2764. slpp:    move.l    d3,d1
  2765.     add.l    #1,d2
  2766.     sub.l    d2,d1
  2767.     movem.l    d0-d3,-(sp)
  2768.     Dmove    string,a0
  2769.     move.l    a0,-(a3)
  2770.     move.l    d2,-(a3)
  2771.     move.l    d1,-(a3)
  2772.     Rbsr    L_cut
  2773.     Dmove    var_buffer,a0
  2774.     Dsave    a0,var2_buffer
  2775.     movem.l    (sp)+,d0-d3
  2776.     movem.l    d0-d3,-(sp)
  2777.     Dmove    string,a0
  2778.     move.l    a0,-(a3)
  2779.     move.l    #1,-(a3)
  2780.     move.l    d1,-(a3)
  2781.     Rbsr    L_cut
  2782.     Dmove2    var_buffer,var2_buffer,a1,a0
  2783.     move.l    a0,-(a3)
  2784.     move.w    (a0),d0
  2785.     add.w    #1,d0
  2786.     ext.l    d0
  2787.     move.l    d0,-(a3)
  2788.     move.l    a1,-(a3)
  2789.     Rbsr    L_ins
  2790.     Dmove    var_buffer,a1
  2791.     add.l    #2,a1
  2792.     WiCall    Centre
  2793.     movem.l    (sp)+,d0-d3
  2794.     Rbsr    tests
  2795.     movem.l    d0-d1,-(sp)
  2796.     Dmove    timer,d1
  2797.     jsr    -198(a6)
  2798.     movem.l    (sp)+,d0-d1
  2799.     dbra    d0,slpp
  2800.     Dmove    string,a1
  2801.     add.l    #2,a1
  2802.     WiCall    Centre
  2803.     bra    sp2end
  2804. *******    TSCROLL "string",richtung,delay
  2805. L_ts    equ    47
  2806. L47
  2807. ts:    move.l    (a3)+,d2
  2808.     move.l    (a3)+,d1
  2809.     move.l    (a3)+,a0
  2810.     movem.l    a3-a6,-(sp)
  2811.     move.l    DosBase(a5),a6
  2812.     cmp.l    #0,d2
  2813.     bpl    d2ok
  2814.     move.l    #10,d2
  2815. d2ok:    Dsave3    d2,d1,a0,timer,kind,var_buffer
  2816. tslop:    Dmove    var_buffer,a1
  2817.     add.l    #2,a1
  2818.     WiCall    Centre
  2819.     Rbsr    tests
  2820.     movem.l    d0-d1,-(sp)
  2821.     Dmove    timer,d1
  2822.     jsr    -198(a6)
  2823.     movem.l    (sp)+,d0-d1
  2824.     btst    #6,$bfe001
  2825.     beq    ts_end
  2826.     movem.l    d7/a3-a6,-(sp)
  2827.     SyCall    Inkey
  2828.     movem.l    (sp)+,d7/a3-a6
  2829.     tst.w    d1
  2830.     bne    ts_end
  2831.     Dmove    kind,d0
  2832.     cmp.l    #0,d0
  2833.     bmi    srol
  2834. sror:    Dmove    var_buffer,a0
  2835.     move.l    a0,-(a3)
  2836.     Rbsr    L_rors
  2837.     bra    tslop
  2838. srol:    Dmove    var_buffer,a0
  2839.     move.l    a0,-(a3)
  2840.     Rbsr    L_rols
  2841.     bra    tslop
  2842. ts_end:    movem.l    (sp)+,a3-a6
  2843.     rts
  2844. *******    ROR$(string)
  2845. L_rors    equ    48
  2846. L48
  2847. ro_r:    move.l    (a3)+,a0
  2848.     move.w    (a0),d0
  2849.     movem.l    a0,-(sp)
  2850.     Rbsr    getmem
  2851.     Dmove    var_buffer,a1
  2852.     move.l    (sp)+,a0
  2853.     moveq    #0,d0
  2854.     move.w    (a0)+,d0
  2855.     move.w    d0,(a1)+
  2856.     sub.w    #1,d0
  2857.     move.b    (a0,d0.w),d1
  2858.     move.b    d1,(a1)+
  2859.     ext.l    d0
  2860.     sub.l    #1,d0
  2861. rotr:    move.b    (a0)+,(a1)+
  2862.     dbra    d0,rotr
  2863.     move.b    #0,(a1)+
  2864.     Dmove    var_buffer,d3
  2865.     moveq    #2,d2
  2866.     rts
  2867. *******    ROL$(string)
  2868. L_rols    equ    49
  2869. L49
  2870. ro_l:    move.l    (a3)+,a0
  2871.     move.w    (a0),d0
  2872.     movem.l    a0,-(sp)
  2873.     Rbsr    getmem
  2874.     Dmove    var_buffer,a1
  2875.     movem.l    (sp)+,a0
  2876.     moveq    #0,d0
  2877.     move.w    (a0)+,d0
  2878.     move.w    d0,(a1)+
  2879.     ext.l    d0
  2880.     sub.l    #2,d0
  2881.     move.b    (a0)+,d1
  2882. rotl:    move.b    (a0)+,(a1)+
  2883.     dbra    d0,rotl
  2884.     move.b    d1,(a1)+
  2885.     move.b    #0,(a1)+
  2886.     Dmove    var_buffer,d3
  2887.     moveq    #2,d2
  2888.     rts
  2889. *******    READ SECTOR(device,sector)
  2890. L_rsec    equ    50
  2891. L50
  2892. rsec:    movem.l    (a3)+,d0-d1
  2893.     movem.l    a3-a6,-(sp)
  2894.     Dsave2    d0,d1,sector,device
  2895.     cmp.l    #1759,d1
  2896.     bgt    rserr
  2897.     cmp.l    #0,d1
  2898.     blt    rserr
  2899.     move.l    #512,d0
  2900.     Rbsr    get_mem
  2901.     Dmove    var_buffer,d0
  2902.     cmp.l    #0,d0
  2903.     beq    rserr
  2904.     Rbsr    L_opend
  2905.     bsr    read_bb
  2906.     Rbsr    L_closd
  2907.     cmp.l    #-1,d7
  2908.     beq    rserr
  2909.     Dmove    var_buffer,a0
  2910.     move.w    #512,(a0)
  2911.     movem.l    (sp)+,a3-a6
  2912.     Dmove    var_buffer,d3
  2913.     moveq    #2,d2
  2914.     rts
  2915. rserr:    movem.l    (sp)+,a3-a6
  2916.     Dlea    trackerr,a0
  2917.     move.l    a0,d3
  2918.     Rbsr    err_get
  2919.     moveq    #2,d2
  2920.     rts
  2921. read_bb:
  2922.     Dlea    diskio,a1
  2923.     Dlea    msgport,a0
  2924.     move.l    a0,14(a1)
  2925.     move.w    #2,28(a1)
  2926.     Dmove    var_buffer,a0
  2927.     add.l    #2,a0
  2928.     move.l    a0,40(a1)
  2929.     move.l    #512,36(a1)
  2930.     Dmove    sector,d0
  2931.     mulu    #512,d0
  2932.     move.l    d0,44(a1)
  2933.     move.l    4,a6
  2934.     jsr    -456(a6)
  2935.     cmp.l    #0,d0
  2936.     beq    rok
  2937.     move.l    #-1,d7
  2938. rok:    Rbsr    L_motor
  2939.     rts
  2940. *******    WRITE SECTOR(string,device,sector)
  2941. L_wsec    equ    51
  2942. L51
  2943. wsec:    movem.l    (a3)+,d0-d1/a0
  2944.     movem.l    a3-a6,-(sp)
  2945.     move.w    (a0)+,d2
  2946.     ext.l    d2
  2947.     cmp.l    #512,d2
  2948.     bne    rwerr
  2949.     Dsave4    a0,d0,d1,d2,var_buffer,sector,device,wrlen
  2950.     cmp.l    #1759,d0
  2951.     bgt    rwerr
  2952.     cmp.l    #0,d0
  2953.     blt    rwerr
  2954.     move.l    #512,d0
  2955.     Rbsr    L_opend
  2956.     bsr    write_bb
  2957.     Rbsr    L_closd
  2958.     cmp.l    #-1,d7
  2959.     beq    rwerr
  2960.     movem.l    (sp)+,a3-a6
  2961.     move.l    #0,d3
  2962.     bra    trex
  2963. rwerr:    movem.l    (sp)+,a3-a6
  2964.     move.l    #-1,d3
  2965. trex:    moveq    #0,d2
  2966.     rts
  2967. write_bb:
  2968.     Dlea    diskio,a1
  2969.     Dlea    msgport,a0
  2970.     move.l    a0,14(a1)
  2971.     move.w    #3,28(a1)
  2972.     Dmove2    var_buffer,wrlen,a0,d0
  2973.     move.l    a0,40(a1)
  2974.     move.l    d0,36(a1)
  2975.     Dmove    sector,d0
  2976.     mulu    #512,d0
  2977.     move.l    d0,44(a1)
  2978.     move.l    4,a6
  2979.     jsr    -456(a6)
  2980.     cmp.l    #0,d0
  2981.     bne    nok
  2982.     Dlea    diskio,a1
  2983.     Dlea    msgport,a0
  2984.     move.l    a0,14(a1)
  2985.     move.w    #4,28(a1)
  2986.     Dmove2    var_buffer,sector,a0,d0
  2987.     move.l    a0,40(a1)
  2988.     move.l    #512,36(a1)
  2989.     mulu    #512,d0
  2990.     move.l    d0,44(a1)
  2991.     move.l    4,a6
  2992.     jsr    -456(a6)
  2993.     cmp.l    #0,d0
  2994.     beq    wok
  2995. nok:    move.l    #-1,d7
  2996. wok:    Rbsr    L_motor
  2997.     rts
  2998.  
  2999. L_opend    equ    52
  3000. L52
  3001.     move.l    4,a6
  3002.     move.l    #0,a1
  3003.     jsr    -294(a6)
  3004.     movem.l    d0,-(sp)
  3005.     Dlea    msgport,a1
  3006.     movem.l    (sp)+,d0
  3007.     add.l    #16,a1
  3008.     move.l    d0,(a1)
  3009.     Dlea    msgport,a1
  3010.     move.l    4,a6
  3011.     jsr    -354(a6)
  3012.     Dlea    diskio,a1
  3013.     Dmove    device,d0
  3014.     move.l    #0,d1
  3015.     Dlea    devicename,a0
  3016.     jsr    -444(a6)
  3017.     rts
  3018. L_closd    equ    53
  3019. L53
  3020.     Dlea    msgport,a1
  3021.     move.l    4,a6
  3022.     jsr    -360(a6)
  3023.     Dlea    diskio,a1
  3024.     jsr    -450(a6)
  3025.     rts
  3026. L_motor    equ    54
  3027. L54
  3028.     Dlea    diskio,a1
  3029.     move.w    #9,28(a1)
  3030.     clr.l    36(a1)
  3031.     move.l    4,a6
  3032.     jsr    -456(a6)
  3033.     rts
  3034. *******    DUMP$(string)
  3035. L_dcon    equ    55
  3036. L55
  3037. dcon:    movem.l    (a3)+,a0
  3038.     Dsave    a0,string
  3039.     move.w    (a0)+,d0
  3040.     cmp.l    #0,d0
  3041.     beq    dconerr
  3042.     movem.l    d0,-(sp)
  3043.     Rbsr    getmem
  3044.     cmp.l    #0,d0
  3045.     beq    dconerr
  3046.     Dmove2    var_buffer,string,a1,a0
  3047.     movem.l    (sp)+,d1
  3048.     move.w    (a0)+,(a1)+
  3049. convloop:
  3050.     cmp.b    #0,(a0)
  3051.     blt    high
  3052.     cmp.b    #' ',(a0)
  3053.     bmi    paste
  3054. high:
  3055.     cmp.b    #$9f,(a0)
  3056.     bpl    nextchar
  3057.     cmp.b    #$80,(a0)
  3058.     bmi    nextchar
  3059.     cmp.b    #$a0,(a0)
  3060.     bmi    paste
  3061.     bra    nextchar
  3062. paste:
  3063.     move.b    #'.',(a1)
  3064.     bra    pchar
  3065. nextchar:
  3066.     move.b    (a0),(a1)
  3067. pchar:    adda.l    #1,a0
  3068.     adda.l    #1,a1
  3069.     subi.w    #1,d1
  3070.     bne    convloop
  3071.     move.b    #0,(a1)
  3072.     Dmove    var_buffer,d3
  3073.     moveq    #2,d2
  3074.     rts
  3075. dconerr:
  3076.     Dlea    trackerr,a0
  3077.     move.l    a0,d3
  3078.     Rbsr    err_get
  3079.     moveq    #2,d2
  3080.     rts
  3081. *******    CHECKSUM(string)
  3082. L_chksum    equ    56
  3083. L56
  3084. checksum:
  3085.     move.l    (a3)+,a0
  3086.     cmp.w    #512,(a0)+
  3087.     bne    sumend
  3088.     move.l    #0,d0
  3089.     move.l    #127,d7
  3090. checkloop:
  3091.     add.l    (a0)+,d0
  3092.     dbra    d7,checkloop
  3093.     sub.l    -492(a0),d0
  3094.     neg.l    d0
  3095.     move.l    d0,d3
  3096. csend:    moveq    #0,d2
  3097.     rts
  3098. sumend:    move.l    #0,d3
  3099.     bra    csend
  3100. *******    BOOTCHECKSUM(string)
  3101. L_bchksum    equ    57
  3102. L57
  3103. bchecksum:
  3104.     move.l    (a3)+,a0
  3105.     cmp.w    #1024,(a0)+
  3106.     bne    bsumend
  3107.     move.l    #0,d0
  3108.     move.l    (a0),d0
  3109.     add.l    #8,a0
  3110.     move.l    #253,d7
  3111. bcheckloop:
  3112.     add.l    (a0)+,d0
  3113.     bcs    overflow
  3114. dochecksum:
  3115.     dbra    d7,bcheckloop
  3116.     add.l    #1,d0
  3117.     neg.l    d0
  3118.     move.l    d0,d3
  3119. bcsend:    moveq    #0,d2
  3120.     rts
  3121. overflow:
  3122.     add.l    #1,d0
  3123.     bra    dochecksum
  3124. bsumend:
  3125.     move.l    #0,d3
  3126.     bra    bcsend
  3127. *******    ODD(zahl)
  3128. L_odd    equ    58
  3129. L58
  3130. odd:    move.l    (a3)+,d0
  3131.     move.l    #1,d3
  3132.     move.l    d0,d1
  3133.     and.w    #$fffe,d0
  3134.     cmp.l    d0,d1
  3135.     beq    is_odd
  3136.     move.l    #0,d3
  3137. is_odd:    moveq    #0,d2
  3138.     rts
  3139. *******    OCT$(zahl)
  3140. L_oct    equ    59
  3141. L59
  3142. oct:    movem.l    a3-a6,-(sp)
  3143.     Rbsr    uninit
  3144.     movem.l    (sp)+,a3-a6
  3145.     move.w    #'& ',d7
  3146.     move.l    (a3)+,d0
  3147.     cmp.l    #0,d0
  3148.     bpl    octcon
  3149.     neg.l    d0
  3150.     move.w    #'&-',d7
  3151. octcon:    movem.l    a3-a6,-(sp)
  3152.     move.l    d0,d1
  3153.     move.l    d0,d2
  3154.     move.l    d0,d3
  3155.     move.l    d0,d4
  3156.     lsr.l    #3,d1
  3157.     sub.l    d1,d2
  3158.     sub.l    d2,d3
  3159.     Mlea    p1_jbuffer,a0
  3160.     move.l    d1,d0
  3161.     bsr    o_bin_to_dec
  3162.     move.l    d4,d0
  3163.     lsl.l    #3,d3
  3164.     sub.l    d3,d0
  3165.     Mlea    p2_jbuffer,a0
  3166.     bsr    o_bin_to_dec
  3167.     Mlea    p1_jbuffer,a0
  3168.     Mlea    p2_jbuffer,a1
  3169.     Mlea    paste_jbuffer,a2
  3170.     add.l    #2,a2
  3171.     move.w    d7,(a2)+
  3172.     add.l    #1,a0
  3173. fnready:
  3174.     move.b    (a0)+,d0
  3175.     cmp.b    #0,d0
  3176.     beq    fready
  3177.     move.b    d0,(a2)+
  3178.     bra    fnready
  3179. fready:    add.l    #1,a1
  3180. snready:
  3181.     move.b    (a1)+,d0
  3182.     cmp.b    #0,d0
  3183.     beq    sready
  3184.     move.b    d0,(a2)+
  3185.     bra    snready
  3186. sready:    move.b    #0,(a2)
  3187.     Mlea    paste_jbuffer,a0
  3188.     add.l    #2,a0
  3189.     move.w    #0,d0
  3190. golen:    cmp.b    #0,(a0)+
  3191.     beq    olen
  3192.     add.w    #1,d0
  3193.     bra    golen
  3194. olen:    Mlea    paste_jbuffer,a0
  3195.     move.w    d0,(a0)
  3196.     Rbsr    getmem
  3197.     Dmove    var_buffer,a1
  3198.     Mlea    paste_jbuffer,a0
  3199.     move.w    (a0)+,(a1)+
  3200. oco:    move.b    (a0)+,(a1)+
  3201.     bne    oco
  3202.     Dmove    var_buffer,a0
  3203.     move.b    2(a0),d0
  3204.     move.b    3(a0),d1
  3205.     move.b    d1,2(a0)
  3206.     move.b    d0,3(a0)
  3207.     Dmove    var_buffer,d3
  3208.     moveq    #2,d2
  3209.     movem.l    (sp)+,a3-a6
  3210.     rts
  3211. o_bin_to_dec:
  3212.     movem.l    d1-d4,-(sp)
  3213.     neg.l    d0
  3214.     move.b    #' ',(a0)+
  3215.     Rbsr    bin_dec2
  3216.     sub.l    #2,a2
  3217.     movem.l    (sp)+,d1-d4
  3218.     rts
  3219. *******    OCT$(zahl,len)
  3220. L_oct2    equ    60
  3221. L60
  3222. oct2:    move.l    (a3)+,d0
  3223.     move.l    d0,-(sp)
  3224.     Rbsr    L_oct
  3225.     movem.l    (sp)+,d0
  3226.     move.l    d3,a0
  3227.     move.w    (a0),d1
  3228.     ext.l    d1
  3229.     sub.l    #2,d1
  3230.     cmp.l    d1,d0
  3231.     ble    o2end
  3232.     sub.l    d1,d0
  3233.     Mlea    paste_jbuffer,a1
  3234.     move.w    d0,(a1)+
  3235.     sub.l    #1,d0
  3236. ocl:    move.b    #'0',(a1)+
  3237.     dbra    d0,ocl
  3238.     move.b    #0,(a1)+
  3239.     Mlea    paste_jbuffer,a1
  3240.     move.l    a0,-(a3)
  3241.     move.l    #3,-(a3)
  3242.     move.l    a1,-(a3)
  3243.     Rbsr    L_ins
  3244. o2end:    rts
  3245. *******    PERCENT(%,zahl)
  3246. L_per    equ    61
  3247. L61
  3248. per:    movem.l    (a3)+,d0-d1
  3249.     cmp.l    #65535,d0
  3250.     bgt    phigh
  3251.     cmp.l    #0,d0
  3252.     blt    phigh
  3253.     cmp.l    #100,d1
  3254.     bgt    phigh
  3255.     cmp.l    #1,d1
  3256.     blt    phigh
  3257.     mulu    d0,d1
  3258.     movem.l    a3-a6,-(sp)
  3259.     move.l    FloatBase(a5),a6
  3260.     move.l    d1,d0
  3261.     jsr    -36(a6)
  3262.     move.l    d0,d5
  3263.     move.l    #100,d0
  3264.     jsr    -36(a6)
  3265.     move.l    d0,d1
  3266.     move.l    d5,d0
  3267.     jsr    -84(a6)
  3268. perex:    move.l    d0,d3
  3269.     moveq    #1,d2
  3270.     movem.l    (sp)+,a3-a6
  3271.     rts
  3272. phigh:    move.l    #23,d0
  3273.     Rjmp    L_Error
  3274. *******    DEOCT(oktalstring)
  3275. L_deoc    equ    62
  3276. L62
  3277. deoc:    move.l    (a3)+,a0
  3278.     Mlea    p1_jbuffer,a1
  3279.     move.w    (a0)+,d0
  3280.     move.w    d0,(a1)+
  3281.     sub.w    #1,d0
  3282. deol:    move.b    (a0)+,(a1)+
  3283.     dbra    d0,deol
  3284.     Mlea    p1_jbuffer,a0
  3285.     move.b    2(a0),d0
  3286.     move.b    3(a0),d1
  3287.     move.b    d1,2(a0)
  3288.     move.b    d0,3(a0)
  3289.     move.b    #0,d6
  3290.     move.w    (a0)+,d0
  3291.     cmp.b    #'&',(a0)+
  3292.     beq    deoct
  3293.     sub.l    #1,a0
  3294. deoct:    cmp.b    #'-',(a0)
  3295.     bne    posi
  3296.     move.b    #1,d6
  3297. posi:    moveq    #0,d7
  3298.     move.b    -2(a0,d0.w),d7
  3299.     sub.b    #48,d7
  3300.     move.b    #0,-2(a0,d0.w)
  3301.     move.b    #0,(a0)+
  3302.     movem.l    d6-d7,-(sp)
  3303.     Rbsr    dec_to_bin
  3304.     lsl.l    #3,d0
  3305.     movem.l    (sp)+,d6-d7
  3306.     add.l    d7,d0
  3307.     cmp.b    #1,d6
  3308.     bne    opo
  3309.     neg.l    d0
  3310. opo:    move.l    d0,d3
  3311.     moveq    #0,d2
  3312.     rts
  3313. *******    HEXDUMP(long,adress,len,breite)
  3314. L_hd    equ    63
  3315. L63
  3316. hxdump:    move.l    (a3)+,d2
  3317.     move.l    (a3)+,d1
  3318.     move.l    (a3)+,d0
  3319.     move.l    (a3)+,d5
  3320.     cmp.l    #1,d2
  3321.     bpl    brok
  3322.     move.l    #8,d2
  3323. brok:    move.l    d2,d6
  3324.     cmp.l    #1,d5
  3325.     beq    lok
  3326.     cmp.l    #2,d5
  3327.     bne    is4
  3328.     and.w    #$fffe,d6
  3329.     cmp.l    d2,d6
  3330.     beq    lok
  3331.     add.l    #1,d2
  3332.     bra    lok
  3333. is4:    and.w    #$fffc,d6
  3334.     cmp.l    d2,d6
  3335.     beq    lok
  3336.     add.l    #1,d2
  3337.     move.l    d2,d6
  3338.     bra    is4
  3339. lok:    move.l    d5,d6
  3340.     add.l    d0,d1
  3341.     Dsave3    d0,d1,d2,_start,_ende,_breite
  3342.     cmp.l    #1,d5
  3343.     beq    main_loop
  3344.     cmp.l    #2,d5
  3345.     beq    main_loop
  3346.     move.l    #4,d5
  3347.     move.l    d5,d6
  3348. main_loop:
  3349.     move.l    #0,d5
  3350.     Dmove    _start,d0
  3351.     Dlea    hexer,a1
  3352.     add.l    #1,a1
  3353.     move    #7,d2
  3354.     bsr    bin_hex1
  3355.     Dlea    hexer,a1
  3356.     WiCall    Print
  3357.     Dmove2    _breite,_start,d7,a0
  3358.     sub.l    #1,d7
  3359. schl:    moveq    #0,d0
  3360.     move.l    a0,d4
  3361.     move.b    (a0)+,d0
  3362.     Dlea    byte,a1
  3363.     bsr    bin_to_hex
  3364.     Dlea    byte,a1
  3365.     movem.l    a0/d4-d7,-(sp)
  3366.     WiCall    Print
  3367.     movem.l    (sp)+,a0/d4-d7
  3368.     add.l    #1,d5
  3369.     movem.l    a0/d4-d7,-(sp)
  3370.     cmp.l    d5,d6
  3371.     bne    no_abs
  3372.     Dlea    blank,a1
  3373.     WiCall    Print
  3374.     movem.l    (sp)+,a0/d4-d7
  3375.     move.l    #0,d5
  3376.     movem.l    a0/d4-d7,-(sp)
  3377.     Dmove    _ende,d5
  3378.     sub.l    #1,d5
  3379.     cmp.l    d4,d5
  3380.     bne    no_abs
  3381.     movem.l    (sp)+,a0/d4-d7
  3382.     move    #0,d7
  3383.     movem.l    a0/d4-d7,-(sp)
  3384. no_abs:    movem.l    (sp)+,a0/d4-d7
  3385.     dbra    d7,schl
  3386.     Dlea    crlf,a1
  3387.     WiCall    Print
  3388.     Dmove2    _breite,_start,d0,d1
  3389.     add.l    d0,d1
  3390.     Dsave    d1,_start
  3391.     Dmove    _ende,d0
  3392.     sub.l    d1,d0
  3393.     bgt    main_loop
  3394.     rts
  3395. bin_to_hex:
  3396.     move    #1,d2
  3397.     bra    _bh1
  3398. bin_hex1:
  3399.     rol.l    #4,d0
  3400.     move    d0,d1
  3401.     bsr    bin_hex2
  3402.     move.b    d1,(a1)+
  3403.     dbra    d2,bin_hex1
  3404.     rts
  3405. bin_hex2:
  3406.     and    #$0f,d1
  3407.     add    #$30,d1
  3408.     cmp    #$3a,d1
  3409.     bcs    bin_hex3
  3410.     add    #7,d1
  3411. bin_hex3:
  3412.     rts
  3413. _bh1:    move    d0,d1
  3414.     lsr    #4,d1
  3415.     bsr    bin_hex2
  3416.     move.b    d1,(a1)+
  3417.     move    d0,d1
  3418.     bsr    bin_hex2
  3419.     move.b    d1,(a1)+
  3420.     rts
  3421. *******    TYPE string,delay,sound
  3422. L_type    equ    64
  3423. L64
  3424. type:    move.l    (a3)+,d1
  3425.     move.l    (a3)+,d0
  3426.     move.l    (a3)+,a0
  3427.     movem.l    d0-d7/a0-a6,-(sp)
  3428.     move.l    #8,d0
  3429.     SyCall    SyChip
  3430.     Dsave    d0,chiptable
  3431.     move.l    d0,a1
  3432.     Dlea    table,a0
  3433.     move.l    (a0)+,(a1)+
  3434.     move.l    (a0)+,(a1)+
  3435.     movem.l    (sp)+,d0-d7/a0-a6
  3436.     add.l    #2,a0
  3437.     cmp.l    #0,d0
  3438.     bpl    d3ok
  3439.     move.l    #10,d0
  3440. d3ok:    Dsave2    d0,d1,_delay,_soo
  3441. typer:    Dlea    one_byte,a1
  3442.     move.b    (a0)+,(a1)
  3443.     cmp.b    #0,(a1)
  3444.     beq    typeex
  3445.     movem.l    a0,-(sp)
  3446.     WiCall    Print
  3447.     Dmove    _soo,d1
  3448.     cmp.l    #0,d1
  3449.     beq    no_sound
  3450.     Dmove    chiptable,$dff0a0
  3451.     move    #4,$dff0a4
  3452.     move    #300,$dff0a6
  3453.     move    #63,$dff0a8
  3454.     move    #$8201,$dff096
  3455.     move.l    #30000,d0
  3456. beeploop:
  3457.     Rbsr    tests
  3458.     dbra    d0,beeploop
  3459.     move    #1,$dff096
  3460. no_sound:
  3461.     movem.l    (sp)+,a0
  3462.     Dmove    _delay,d0
  3463. dloop2:    move.l    #5000,d1
  3464. dloop:    dbra    d1,dloop
  3465.     dbra    d0,dloop2
  3466.     bra    typer
  3467. typeex:    Dmove    chiptable,a1
  3468.     move.l    #8,d0
  3469.     SyCall    SyFree
  3470.     rts
  3471. *******    ACTUAL DATE(date1$,date2$)
  3472. L_cdate    equ    65
  3473. L65
  3474. cdate:    movem.l    (a3)+,a0-a1
  3475.     movem.l    a3-a6,-(sp)
  3476.     movem.l    a0-a1,-(sp)
  3477.     cmp.w    #10,(a0)+
  3478.     bne    wf
  3479.     cmp.w    #10,(a1)+
  3480.     bne    wf
  3481.     Dlea    dzw1,a2
  3482.     move.b    6(a0),(a2)+
  3483.     move.b    7(a0),(a2)+
  3484.     move.b    8(a0),(a2)+
  3485.     move.b    9(a0),(a2)+
  3486.     move.b    3(a0),(a2)+
  3487.     move.b    4(a0),(a2)+
  3488.     move.b    0(a0),(a2)+
  3489.     move.b    1(a0),(a2)+
  3490.     Dlea    dzw1,a0
  3491.     Rbsr    dec_to_bin
  3492.     Dsave    d0,dz1
  3493.     Dlea    dzw2,a3
  3494.     move.b    6(a1),(a3)+
  3495.     move.b    7(a1),(a3)+
  3496.     move.b    8(a1),(a3)+
  3497.     move.b    9(a1),(a3)+
  3498.     move.b    3(a1),(a3)+
  3499.     move.b    4(a1),(a3)+
  3500.     move.b    0(a1),(a3)+
  3501.     move.b    1(a1),(a3)+
  3502.     Dlea    dzw2,a0
  3503.     Rbsr    dec_to_bin
  3504.     Dsave    d0,dz2
  3505.     movem.l    (sp)+,a0-a1
  3506.     move.l    a0,d3
  3507.     Dmove2    dz1,dz2,d1,d2
  3508.     sub.l    d1,d2
  3509.     bmi    gr2
  3510.     move.l    a1,d3
  3511. gr2:    Rbsr    err_get
  3512.     moveq    #2,d2
  3513.     movem.l    (sp)+,a3-a6
  3514.     rts
  3515. wf:    movem.l    (sp)+,a0-a1
  3516.     movem.l    (sp)+,a3-a6
  3517.     move.l    #23,d0
  3518.     Rjmp    L_Error
  3519. *******    ACTUAL TIME(time1$,time2$)
  3520. L_ctime    equ    66
  3521. L66
  3522. ctime:    movem.l    (a3)+,a0-a1
  3523.     movem.l    a3-a6,-(sp)
  3524.     movem.l    a0-a1,-(sp)
  3525.     cmp.w    #8,(a0)+
  3526.     bne    wf2
  3527.     cmp.w    #8,(a1)+
  3528.     bne    wf2
  3529.     Dlea    dzw1,a2
  3530.     move.w    #'00',(a2)+
  3531.     move.b    0(a0),(a2)+
  3532.     move.b    1(a0),(a2)+
  3533.     move.b    3(a0),(a2)+
  3534.     move.b    4(a0),(a2)+
  3535.     move.b    6(a0),(a2)+
  3536.     move.b    7(a0),(a2)+
  3537.     Dlea    dzw1,a0
  3538.     Rbsr    dec_to_bin
  3539.     Dsave    d0,dz1
  3540.     Dlea    dzw2,a3
  3541.     move.w    #'00',(a3)+
  3542.     move.b    0(a1),(a3)+
  3543.     move.b    1(a1),(a3)+
  3544.     move.b    3(a1),(a3)+
  3545.     move.b    4(a1),(a3)+
  3546.     move.b    6(a1),(a3)+
  3547.     move.b    7(a1),(a3)+
  3548.     Dlea    dzw2,a0
  3549.     Rbsr    dec_to_bin
  3550.     Dsave    d0,dz2
  3551.     movem.l    (sp)+,a0-a1
  3552.     move.l    a0,d3
  3553.     Dmove2    dz1,dz2,d1,d2
  3554.     sub.l    d1,d2
  3555.     bmi    gr22
  3556.     move.l    a1,d3
  3557. gr22:    Rbsr    err_get
  3558.     moveq    #2,d2
  3559.     movem.l    (sp)+,a3-a6
  3560.     rts
  3561. wf2:    movem.l    (sp)+,a0-a1
  3562.     movem.l    (sp)+,a3-a6
  3563.     move.l    #23,d0
  3564.     Rjmp    L_Error
  3565. *******    RESET
  3566. L_reset    equ    67
  3567. L67
  3568. reset:    jmp    $fc00d2
  3569.  
  3570. *******    DRAW ANGLE x,y,len,angle
  3571. L_drang    equ    68
  3572. L68
  3573. drang:    movem.l    a3-a6,-(sp)
  3574.     bsr    getsincos
  3575.     movem.l    (sp)+,a3-a6
  3576.     move.l    (a3)+,d3    ;angle
  3577.     move.l    (a3)+,d2    ;len
  3578.     move.l    (a3)+,d1    ;y
  3579.     move.l    (a3)+,d0    ;x
  3580.     movem.l    a3-a6,-(sp)
  3581.     move.l    T_GfxBase(a5),a4
  3582.     move.l    FloatBase(a5),a6
  3583.     move.l    T_RastPort(a5),d4
  3584.     movem.l    a3,-(sp)
  3585.     move.l    ExtAdr+ExtNb*16(a5),a3
  3586.     add.w    #rastport-JD,a3
  3587.     move.l    d4,(a3)
  3588.     move.l    ExtAdr+ExtNb*16(a5),a3
  3589.     add.w    #_kx1-JD,a3
  3590.     move.l    d0,(a3)
  3591.     move.l    ExtAdr+ExtNb*16(a5),a3
  3592.     add.w    #_ky1-JD,a3
  3593.     move.l    d1,(a3)
  3594.     move.l    ExtAdr+ExtNb*16(a5),a3
  3595.     add.w    #kon2-JD,a3
  3596.     move.l    d2,(a3)
  3597.     move.l    ExtAdr+ExtNb*16(a5),a3
  3598.     add.w    #kon1-JD,a3
  3599.     move.l    d3,(a3)
  3600.     movem.l    (sp)+,a3
  3601.     Dmove    kon2,d0
  3602.     jsr    -36(a6)
  3603.     Dsave    d0,kon2        ;len>float
  3604.     Dmove    kon1,d0
  3605.     jsr    -36(a6)
  3606.     Dsave    d0,kon1        ;angle>float
  3607.     Dmove2    kon2,_cos,d0,d1    ;len
  3608.     jsr    -78(a6)        ;len*cos
  3609.     jsr    -30(a6)        ;>int
  3610.     move.l    d0,d7        ;>d7
  3611.     Dmove2    kon2,_sin,d0,d1    ;len
  3612.     jsr    -78(a6)        ;len*sin
  3613.     jsr    -30(a6)        ;>int
  3614.     move.l    d0,d6        ;>d6
  3615.     Dmove3    _kx1,_ky1,rastport,d0,d1,a1
  3616.     add.l    d0,d7        ;x+xoff>d7
  3617.     add.l    d1,d6        ;y+yoff>d6
  3618.     move.l    a4,a6
  3619.     jsr    -240(a6)
  3620.     move.l    d7,d0
  3621.     move.l    d6,d1
  3622.     Dmove    rastport,a1
  3623.     jsr    -246(a6)
  3624.     movem.l    (sp)+,a3-a6
  3625.     rts
  3626. getsincos:
  3627.     move.l    (a3)+,d3
  3628.     bsr    testwinkel2
  3629.     move.l    d3,-(a3)
  3630.     mulu    #4,d3
  3631.     Dlea    cosinus,a0
  3632.     move.l    0(a0,d3.l),d7
  3633.     Dlea    sinus,a0    
  3634.     move.l    0(a0,d3.l),d6
  3635.     Dsave2    d7,d6,_cos,_sin
  3636.     rts
  3637. testwinkel2:
  3638.     cmp.l    #0,d3
  3639.     bmi    add360a
  3640.     cmp.l    #360,d3
  3641.     bgt    sub360a
  3642.     rts
  3643. add360a    add.l    #360,d3
  3644.     bra    testwinkel2
  3645. sub360a    sub.l    #360,d3
  3646.     bra    testwinkel2
  3647. *******    KEYPRESS
  3648. L_getk    equ    69
  3649. L69
  3650. getk:    moveq    #0,d3
  3651.     move.b    $bfec01,d3
  3652.     move.l    d3,d2
  3653.     and.b    #$fe,d2
  3654.     cmp.l    d3,d2
  3655.     bne    pressed
  3656.     moveq    #0,d3
  3657. pressed:
  3658.     moveq    #0,d2
  3659.     rts
  3660. *******    ROL(anz,zahl)
  3661. L_rol    equ    70
  3662. L70
  3663. rol:    move.l    (a3)+,d3
  3664.     move.l    (a3)+,d2
  3665.     sub.l    #1,d2
  3666. rllanz:    rol.l    #1,d3
  3667.     dbra    d2,rllanz
  3668.     moveq    #0,d2
  3669.     rts
  3670. *******    ROR(anz,zahl)
  3671. L_ror    equ    71
  3672. L71
  3673. ror:    move.l    (a3)+,d3
  3674.     move.l    (a3)+,d2
  3675.     sub.l    #1,d2
  3676. rrlanz:    ror.l    #1,d3
  3677.     dbra    d2,rrlanz
  3678.     moveq    #0,d2
  3679.     rts
  3680. *******    ROXL(anz,zahl)
  3681. L_roxl    equ    72
  3682. L72
  3683. roxl:    move.l    (a3)+,d3
  3684.     move.l    (a3)+,d2
  3685.     sub.l    #1,d2
  3686. rlxlanz:
  3687.     roxl.l    #1,d3
  3688.     dbra    d2,rlxlanz
  3689.     moveq    #0,d2
  3690.     rts
  3691. *******    ROXR(anz,zahl)
  3692. L_roxr    equ    73
  3693. L73
  3694. roxr:    move.l    (a3)+,d3
  3695.     move.l    (a3)+,d2
  3696.     sub.l    #1,d2
  3697. rrxlanz:
  3698.     roxr.l    #1,d3
  3699.     dbra    d2,rrxlanz
  3700.     moveq    #0,d2
  3701.     rts
  3702. *******    LSL(anz,zahl)
  3703. L_lsl    equ    74
  3704. L74
  3705. lsl:    move.l    (a3)+,d3
  3706.     move.l    (a3)+,d2
  3707.     sub.l    #1,d2
  3708. lslanz:    lsl.l    #1,d3
  3709.     dbra    d2,lslanz
  3710.     moveq    #0,d2
  3711.     rts
  3712. *******    LSR(anz,zahl)
  3713. L_lsr    equ    75
  3714. L75
  3715. lsr:    move.l    (a3)+,d3
  3716.     move.l    (a3)+,d2
  3717.     sub.l    #1,d2
  3718. lsrlanz:
  3719.     lsr.l    #1,d3
  3720.     dbra    d2,lsrlanz
  3721.     moveq    #0,d2
  3722.     rts
  3723. *******    ASL(anz,zahl)
  3724. L_asl    equ    76
  3725. L76
  3726. asl:    move.l    (a3)+,d3
  3727.     move.l    (a3)+,d2
  3728.     sub.l    #1,d2
  3729. asllanz:
  3730.     asl.l    #1,d3
  3731.     dbra    d2,asllanz
  3732.     moveq    #0,d2
  3733.     rts
  3734. *******    ASR(anz,zahl)
  3735. L_asr    equ    77
  3736. L77
  3737. asr:    move.l    (a3)+,d3
  3738.     move.l    (a3)+,d2
  3739.     sub.l    #1,d2
  3740. asrlanz:
  3741.     asr.l    #1,d3
  3742.     dbra    d2,asrlanz
  3743.     moveq    #0,d2
  3744.     rts
  3745. *******    IMP(zahl,zahl)
  3746. L_imp    equ    78
  3747. L78
  3748. imp:    move.l    (a3)+,d1
  3749.     move.l    (a3)+,d0
  3750.     moveq    #0,d3
  3751. it1:    btst    #31,d0
  3752.     bne    iset
  3753.     bra    iunset
  3754. impl:    lea    it1+3(pc),a0
  3755.     move.b    (a0),d5
  3756.     sub.l    #1,d5
  3757.     cmp.b    #-1,d5
  3758.     beq    imp_ready
  3759.     move.b    d5,(a0)
  3760.     lea    iset+3(pc),a0
  3761.     move.b    d5,(a0)
  3762.     lea    iunset+3(pc),a0
  3763.     move.b    d5,(a0)
  3764.     bra    it1
  3765. iset:    btst    #31,d1
  3766.     bne    iunset
  3767.     bra    impl
  3768. iunset:    bset    #31,d3
  3769.     bra    impl
  3770. imp_ready:
  3771.     move.b    #31,d5
  3772.     lea    it1+3(pc),a0
  3773.     move.b    d5,(a0)
  3774.     lea    iset+3(pc),a0
  3775.     move.b    d5,(a0)
  3776.     lea    iunset+3(pc),a0
  3777.     move.b    d5,(a0)
  3778.     moveq    #0,d2
  3779.     rts
  3780. *******    EQV(zahl,zahl)
  3781. L_eqv    equ    79
  3782. L79
  3783. eqv:    move.l    (a3)+,d1
  3784.     move.l    (a3)+,d0
  3785.     moveq    #0,d3
  3786. t1:    btst    #31,d0
  3787.     bne    set
  3788. t2:    btst    #31,d1
  3789.     beq    unset
  3790. eqvl:    lea    t1+3(pc),a0
  3791.     move.b    (a0),d5
  3792.     sub.l    #1,d5
  3793.     cmp.b    #-1,d5
  3794.     beq    eqv_ready
  3795.     move.b    d5,(a0)
  3796.     lea    t2+3(pc),a0
  3797.     move.b    d5,(a0)
  3798.     lea    set+3(pc),a0
  3799.     move.b    d5,(a0)
  3800.     lea    unset+3(pc),a0
  3801.     move.b    d5,(a0)
  3802.     bra    t1
  3803. set:    btst    #31,d1
  3804.     bne    unset
  3805.     bra    eqvl
  3806. unset:    bset    #31,d3
  3807.     bra    eqvl
  3808. eqv_ready:
  3809.     move.b    #31,d5
  3810.     lea    t1+3(pc),a0
  3811.     move.b    d5,(a0)
  3812.     lea    t2+3(pc),a0
  3813.     move.b    d5,(a0)
  3814.     lea    set+3(pc),a0
  3815.     move.b    d5,(a0)
  3816.     lea    unset+3(pc),a0
  3817.     move.b    d5,(a0)
  3818.     moveq    #0,d2
  3819.     rts
  3820. *******    INTSCREEN BASE
  3821. L_getsb    equ    80
  3822. L80
  3823. getsb:    move.l    T_ScreenAdr(a5),d3
  3824.     moveq    #0,d2
  3825.     rts
  3826. *******    INTWINDOW BASE
  3827. L_getwb    equ    81
  3828. L81
  3829. getwb:    move.l    T_WindowAdr(a5),d3
  3830.     moveq    #0,d2
  3831.     rts
  3832. *******    LINSTR(string,instring)
  3833. L_linstr    equ    82
  3834. L82
  3835. linstr:    movem.l    a3-a6,-(sp)
  3836.     Rbsr    uninit
  3837.     movem.l    (sp)+,a3-a6
  3838.     move.l    (a3)+,a1
  3839.     move.l    (a3)+,a0
  3840.     movem.l    a3-a6,-(sp)
  3841.     Mlea    p1_jbuffer,a2
  3842.     Mlea    p2_jbuffer,a4
  3843.     moveq    #0,d0
  3844.     moveq    #0,d1
  3845.     move.w    (a0)+,d0
  3846.     beq    lin_err
  3847.     move.w    d0,(a2)+
  3848.     ext.l    d0
  3849.     move.l    d0,d6
  3850.     sub.l    #1,d0
  3851. flip1:    move.b    (a0,d1),(a2,d0)
  3852.     add.l    #1,d1
  3853.     dbra    d0,flip1
  3854.     moveq    #0,d1
  3855.     move.w    (a1)+,d0
  3856.     beq    lin_err
  3857.     move.w    d0,(a4)+
  3858.     ext.l    d0
  3859.     move.l    d0,d7
  3860.     sub.l    #1,d0
  3861. flip2:    move.b    (a1,d1),(a4,d0)
  3862.     add.l    #1,d1
  3863.     dbra    d0,flip2
  3864.     movem.l    (sp)+,a3-a6
  3865.     movem.l    a3-a6,-(sp)
  3866.     Mlea    p1_jbuffer,a0
  3867.     Mlea    p2_jbuffer,a1
  3868.     movem.l    (sp)+,a3-a6
  3869.     move.l    a0,-(a3)
  3870.     move.l    a1,-(a3)
  3871.     bsr    ninstr
  3872.     moveq    #0,d2
  3873.     cmp.l    #0,d3
  3874.     beq    nnin
  3875.     add.l    d7,d3
  3876.     sub.l    #1,d3
  3877.     add.l    #1,d6
  3878.     sub.l    d3,d6
  3879.     move.l    d6,d3
  3880. nnin:    rts
  3881. lin_err:
  3882.     movem.l    (sp)+,a3-a6
  3883.     move.l    #0,d3
  3884.     moveq    #0,d2
  3885.     rts
  3886. ninstr:    moveq    #0,d2
  3887.     move.l    (a3)+,a2
  3888.     move.w    (a2)+,d2
  3889.     moveq    #0,d1
  3890.     move.l    (a3)+,a1
  3891.     move.w    (a1)+,d1
  3892.     moveq    #0,d4
  3893.     bsr    lbC16
  3894.     rts
  3895. lbC16    movem.l    a3,-(sp)
  3896.     tst.l    d2
  3897.     beq    lbC4E
  3898.     tst.l    d4
  3899.     beq    lbC22
  3900.     subq.l    #1,d4
  3901. lbC22    add.l    d4,a1
  3902. lbC24    clr.w    d3
  3903. lbC26    move.l    a2,a3
  3904.     addq.w    #1,d4
  3905.     cmp.w    d1,d4
  3906.     bhi    lbC4E
  3907.     cmpm.b    (a1)+,(a3)+
  3908.     bne    lbC26
  3909.     move.l    a1,a0
  3910.     move.w    d4,d0
  3911. lbC36    addq.w    #1,d3
  3912.     cmp.w    d2,d3
  3913.     bcc    lbC48
  3914.     addq.w    #1,d0
  3915.     cmp.w    d1,d0
  3916.     bhi    lbC4E
  3917.     cmpm.b    (a0)+,(a3)+
  3918.     beq    lbC36
  3919.     bra    lbC24
  3920. lbC48    move.l    d4,d3
  3921.     movem.l    (sp)+,a3
  3922.     rts
  3923. lbC4E    moveq    #0,d3
  3924.     movem.l    (sp)+,a3
  3925.     rts
  3926. ******* CHECKPRT
  3927. L_cp    equ    83
  3928. L83
  3929. cp:    lea    $bfd0c8,a0
  3930.     clr.l    d3
  3931.     move.b    (a0)+,d3
  3932.     eor    #%11111000,d3
  3933.     cmp.b    #4,d3
  3934.     bne    cp1
  3935.     move.l    #0,d3        ;ok
  3936.     bra    cpex
  3937. cp1:    cmp.b    #0,d3
  3938.     bne    cp2
  3939.     move.l    #2,d3        ;offline
  3940.     bra    cpex
  3941. cp2:    cmp.b    #7,d3
  3942.     bne    cp3
  3943.     move.l    #1,d3        ;aus
  3944.     bra    cpex
  3945. cp3:    cmp.b    #2,d3
  3946.     bne    cp4
  3947.     move.l    #3,d3        ;papier
  3948.     bra    cpex
  3949. cp4:    ext.w    d3
  3950.     ext.l    d3
  3951. cpex:    moveq    #0,d2
  3952.     rts
  3953. *******    SPLINE x1,y1,x2,y2,x3,y3,step
  3954. L_spline    equ    84
  3955. L84
  3956.     movem.l    (a3)+,d0-d6
  3957.     movem.l    a3,-(sp)
  3958.     move.l    ExtAdr+ExtNb*16(a5),a3
  3959.     add.w    #stepper-JD,a3
  3960.     move.l    #0,(a3)
  3961.     move.l    ExtAdr+ExtNb*16(a5),a3
  3962.     add.w    #fl-JD,a3
  3963.     move.l    #0,(a3)
  3964.     move.l    ExtAdr+ExtNb*16(a5),a3
  3965.     add.w    #_kx1-JD,a3
  3966.     move.l    d6,(a3)
  3967.     move.l    ExtAdr+ExtNb*16(a5),a3
  3968.     add.w    #_ky1-JD,a3
  3969.     move.l    d5,(a3)
  3970.     move.l    ExtAdr+ExtNb*16(a5),a3
  3971.     add.w    #_kx2-JD,a3
  3972.     move.l    d4,(a3)
  3973.     move.l    ExtAdr+ExtNb*16(a5),a3
  3974.     add.w    #_ky2-JD,a3
  3975.     move.l    d3,(a3)
  3976.     move.l    ExtAdr+ExtNb*16(a5),a3
  3977.     add.w    #_kx3-JD,a3
  3978.     move.l    d2,(a3)
  3979.     move.l    ExtAdr+ExtNb*16(a5),a3
  3980.     add.w    #_ky3-JD,a3
  3981.     move.l    d1,(a3)
  3982.     move.l    ExtAdr+ExtNb*16(a5),a3
  3983.     add.w    #_step-JD,a3
  3984.     move.l    d0,(a3)
  3985.     movem.l    (sp)+,a3
  3986.     move.l    d6,d7
  3987.     sub.l    d2,d7
  3988.     Dsave    d7,kon1
  3989.     move.l    d5,d7
  3990.     sub.l    d1,d7
  3991.     Dsave    d7,kon2
  3992.     move.l    d2,d7
  3993.     sub.l    d4,d7
  3994.     Dsave    d7,kon3
  3995.     move.l    d1,d7
  3996.     sub.l    d3,d7
  3997.     Dsave    d7,kon4
  3998. splil:    Dmove2    stepper,_step,d7,d6
  3999.     cmp.l    d6,d7
  4000.     ble    XS1
  4001.     rts
  4002. XS1:    Dmove4    kon1,stepper,_step,_kx1,d1,d7,d6,d0
  4003.     muls    d7,d1
  4004.     divs    d6,d1
  4005.     sub.l    d1,d0
  4006.     ext.l    d0
  4007.     Dsave    d0,_XS1
  4008. XS2:    Dmove4    kon3,stepper,_step,_kx3,d1,d7,d6,d0
  4009.     muls    d7,d1
  4010.     divs    d6,d1
  4011.     sub.l    d1,d0
  4012.     ext.l    d0
  4013.     Dsave    d0,_XS2
  4014. YS1:    Dmove4    kon2,stepper,_step,_ky1,d1,d7,d6,d0
  4015.     muls    d7,d1
  4016.     divs    d6,d1
  4017.     sub.l    d1,d0
  4018.     ext.l    d0
  4019.     Dsave    d0,_YS1
  4020. YS2:    Dmove4    kon4,stepper,_step,_ky3,d1,d7,d6,d0
  4021.     muls    d7,d1
  4022.     divs    d6,d1
  4023.     sub.l    d1,d0
  4024.     ext.l    d0
  4025.     Dsave    d0,_YS2
  4026. XS:    Dmove4    _XS1,_XS2,stepper,_step,d0,d1,d7,d6
  4027.     sub.l    d1,d0
  4028.     muls    d7,d0
  4029.     divs    d6,d0
  4030.     Dmove    _XS1,d1
  4031.     sub.l    d0,d1
  4032.     ext.l    d1
  4033.     Dsave    d1,_XS
  4034. YS:    Dmove4    _YS1,_YS2,stepper,_step,d0,d1,d7,d6
  4035.     sub.l    d1,d0
  4036.     muls    d7,d0
  4037.     divs    d6,d0
  4038.     Dmove    _YS1,d1
  4039.     sub.l    d0,d1
  4040.     ext.l    d1
  4041.     Dsave    d1,_YS
  4042. if:    Dmove    fl,d0
  4043.     cmp.l    #0,d0
  4044.     beq    setfl
  4045.     bsr    _draw
  4046.     bra    asfl
  4047. setfl:    Dsave    #1,fl
  4048.     bsr    locit
  4049. asfl:    Dmove    stepper,d0
  4050.     add.l    #1,d0
  4051.     Dsave    d0,stepper
  4052.     bra    splil
  4053. _draw:    movem.l    a3-a6,-(sp)
  4054.     move.l    T_RastPort(a5),a1
  4055.     move.l    T_GfxBase(a5),a6
  4056.     Dmove2    _XO,_YO,d0,d1
  4057.     jsr    -240(a6)
  4058.     move.l    T_RastPort(a5),a1
  4059.     Dmove2    _XS,_YS,d0,d1
  4060.     Dsave2    d0,d1,_XO,_YO
  4061.     jsr    -246(a6)
  4062.     movem.l    (sp)+,a3-a6
  4063.     rts
  4064. locit:    movem.l    a3-a6,-(sp)
  4065.     move.l    T_RastPort(a5),a1
  4066.     move.l    T_GfxBase(a5),a6
  4067.     Dmove2    _kx1,_ky1,d0,d1
  4068.     Dsave2    d0,d1,_XO,_YO
  4069.     jsr    -240(a6)
  4070.     movem.l    (sp)+,a3-a6
  4071.     rts
  4072.  
  4073. L_openmt    equ    85
  4074. L85
  4075.     movem.l    d0-d3,-(sp)
  4076.     move.l    FloatBase(a5),a5
  4077.     lea    mtname(pc),a1
  4078.     move.l    4,a6
  4079.     jsr    -408(a6)
  4080.     move.l    d0,a6
  4081.     movem.l    (sp)+,d0-d3
  4082.     rts
  4083. mtname:
  4084.     dc.b    'mathtrans.library',0
  4085.     even
  4086.  
  4087. *******    E#
  4088. L_e    equ    86
  4089. L86
  4090. e:    move.l    #$adf85442,d3
  4091.     moveq    #1,d2
  4092.     rts
  4093. L_getxypos    equ 87
  4094. L87
  4095. getxypos:
  4096.     movem.l    a3-a6,-(sp)
  4097.     WiCall    XYCuWi
  4098.     movem.l    (sp)+,a3-a6
  4099.     move.l    d2,d0
  4100.     rts
  4101. *******    TEXTFONT name,big
  4102. L_font    equ    88
  4103. L88
  4104. set_font:
  4105.     movem.l    a3-a6,-(sp)
  4106.     move.l    4,a6
  4107.     Dlea    gfxname,a1
  4108.     jsr    -408(a6)
  4109.     Dsave    d0,gfxbase
  4110.     Dlea    fontname,a1
  4111.     jsr    -408(a6)
  4112.     Dsave    d0,fontbase
  4113.     Dmove2    font_font,gfxbase,a1,a6
  4114.     beq    no_rem
  4115.     jsr    -78(a6)
  4116. no_rem:    movem.l    (sp)+,a3-a6    
  4117.     movem.l    (a3)+,d0/a0
  4118.     move.l    T_RastPort(a5),d1
  4119.     movem.l    a3-a6,-(sp)
  4120.     Dsave    d1,rastport
  4121.     add.l    #2,a0
  4122.     Dlea    font_textattr,a1
  4123.     move.l    a0,(a1)+    
  4124.     move.w    d0,(a1)
  4125.     Dmove    fontbase,a6
  4126.     Dlea    font_textattr,a0
  4127.     jsr    -30(a6)
  4128.     Dsave    d0,font_font
  4129. set_druid_font:
  4130.     Dmove3    gfxbase,font_font,rastport,a6,a0,a1
  4131.     jsr    -66(a6)
  4132.     movem.l    (sp)+,a3-a6
  4133.     Dmove    font_font,a0
  4134.     move.w    20(a0),d0
  4135.     move.w    24(a0),d1
  4136.     ext.l    d0
  4137.     ext.l    d1
  4138.     Dsave2    d1,d0,fx,fy
  4139.     rts
  4140. *******    PRINT "text"
  4141. L_print    equ    89
  4142. L89
  4143. pri:    movem.l    a3-a6,-(sp)
  4144.     Dmove    font_font,a0
  4145.     cmp.l    #0,a0
  4146.     beq    nojdf
  4147.     Dlea    cuoff,a1
  4148.     WiCall    Print
  4149.     move.l    4,a6
  4150.     Dlea    gfxname,a1
  4151.     jsr    -408(a6)
  4152.     Dsave    d0,gfxbase
  4153.     movem.l    (sp)+,a3-a6
  4154.     movem.l    a3-a6,-(sp)
  4155.     move.l    T_RastPort(a5),a1
  4156.     Dsave    a1,rastport
  4157.     Rbsr    L_getxypos
  4158.     movem.l    d0-d1,-(sp)
  4159.     Dmove3    gfxbase,fx,fy,a6,d3,d4
  4160.     add.l    #1,d0
  4161.     mulu    d4,d0
  4162.     mulu    d3,d1
  4163.     sub.l    #2,d0
  4164.     move.l    d1,d2
  4165.     move.l    d0,d1
  4166.     move.l    d2,d0
  4167.     jsr    -240(a6)
  4168.     Dmove    rastport,a1
  4169.     move.l    (a3)+,a0
  4170.     move.w    (a0)+,d0
  4171.     ext.l    d0
  4172.     movem.l    d0,-(sp)
  4173.     jsr    -60(a6)
  4174.     movem.l    (sp)+,d2
  4175.     movem.l    (sp)+,d0-d1
  4176.     add.l    d2,d1
  4177.     move.l    d0,d2
  4178.     WiCall    Locate
  4179. jdpe:    movem.l    (sp)+,a3-a6
  4180.     move.l    (a3)+,d0
  4181.     rts
  4182. nojdf:    movem.l    (sp)+,a3-a6
  4183.     move.l    (a3)+,a1
  4184.     move.w    (a1)+,d0
  4185.     movem.l    a3-a6,-(sp)
  4186.     WiCall    Print
  4187.     movem.l    (sp)+,a3-a6
  4188.     rts
  4189. *******    HARDWARE$
  4190. L_hw    equ    90
  4191. L90
  4192. hw:    move.l    #0,d6
  4193.     Rbra    L_getvoldev
  4194. *******    VOLUME$
  4195. L_vol    equ    91
  4196. L91
  4197. vol:    move.l    #2,d6
  4198.     Rbra    L_getvoldev
  4199. *******    LOGICAL$
  4200. L_logic    equ    92
  4201. L92
  4202. log:    move.l    #1,d6
  4203.     Rbra    L_getvoldev
  4204.  
  4205. L_getvoldev    equ    93
  4206. L93
  4207.     movem.l    a3-a6,-(sp)
  4208.     move.l    DosBase(a5),a6
  4209.     move.l    a6,a0
  4210.     move.l    $22(a0),a1
  4211.     move.l    $18(a1),d0
  4212.     asl.l    #2,d0
  4213.     move.l    d0,a0
  4214.     move.l    4(a0),d0
  4215.     asl.l    #2,d0
  4216.     move.l    d0,a4
  4217.     Mlea    p1_jbuffer,a1
  4218. devDLT_DEVICE:
  4219.     move.l    4(a4),d5
  4220.     cmp.l    d6,d5
  4221.     bne    devdevcont    
  4222.     move.l    $28(a4),d0
  4223.     asl.l    #2,d0
  4224.     move.l    d0,a0
  4225.     bsr    devdevtxt
  4226. devdevcont:
  4227.     move.l    0(a4),d7
  4228.     tst.l    d7
  4229.     beq    devquit
  4230.     asl.l    #2,d7
  4231.     move.l    d7,a4
  4232.     bra    devDLT_DEVICE
  4233. devquit:
  4234.     move.l    #-1,d0
  4235.     Mlea    p1_jbuffer,a0
  4236. gethdlen:
  4237.     add.l    #1,d0
  4238.     cmp.b    #0,(a0)+
  4239.     bne    gethdlen
  4240.     movem.l    d0,-(sp)
  4241.     Rbsr    get_mem
  4242.     Dmove    var_buffer,a1
  4243.     Mlea    p1_jbuffer,a0
  4244.     movem.l    (sp)+,d0
  4245.     move.w    d0,(a1)+
  4246.     sub.l    #1,d0
  4247. chwl:    move.b    (a0)+,(a1)+
  4248.     dbra    d0,chwl
  4249.     Rbsr    uninit
  4250.     movem.l    (sp)+,a3-a6
  4251.     Dmove    var_buffer,d3
  4252.     moveq    #2,d2
  4253.     rts
  4254. devdevtxt:
  4255.     add.l    #1,a0
  4256. hwcl:    move.b    (a0)+,(a1)+
  4257.     bne    hwcl
  4258.     move.b    #':',-(a1)
  4259.     add.l    #1,a1
  4260.     rts
  4261. *******    CHAR X
  4262. L_charx    equ    94
  4263. L94
  4264. charx:    Dmove    fx,d3
  4265.     moveq    #0,d2
  4266.     rts
  4267. *******    CHAR Y
  4268. L_chary    equ    95
  4269. L95
  4270. chary:    Dmove    fy,d3
  4271.     moveq    #0,d2
  4272.     rts
  4273.  
  4274. L_sccopy    equ    96
  4275. L96
  4276.     move.l    #$CC,d6
  4277.     move.l    8(a3),d1
  4278.     Rbsr    get_screen
  4279.     move.l    d0,$348(a5)
  4280.     movea.l    a0,a1
  4281.     move.l    $1C(a3),d1
  4282.     Rbsr    get_screen
  4283.     move.l    d0,$344(a5)
  4284.     move.l    (a3)+,d3
  4285.     move.l    (a3)+,d2
  4286.     addq.l    #4,a3
  4287.     move.l    (a3)+,d5
  4288.     move.l    (a3)+,d4
  4289.     move.l    (a3)+,d1
  4290.     move.l    (a3)+,d0
  4291.     addq.l    #4,a3
  4292.     movem.l    a3/a6,-(sp)
  4293.     tst.w    d0
  4294.     bpl    lbcC00000C
  4295.     sub.w    d0,d2
  4296.     clr.w    d0
  4297. lbcC00000C    tst.w    d1
  4298.     bpl    lbcC000014
  4299.     sub.w    d1,d3
  4300.     clr.w    d1
  4301. lbcC000014    tst.w    d2
  4302.     bpl    lbcC00001C
  4303.     sub.w    d2,d0
  4304.     clr.w    d2
  4305. lbcC00001C    tst.w    d3
  4306.     bpl    lbcC000024
  4307.     sub.w    d3,d1
  4308.     clr.w    d3
  4309. lbcC000024    cmp.w    $4C(a0),d0
  4310.     bcc    lbcC0000F0
  4311.     cmp.w    $4E(a0),d1
  4312.     bcc    lbcC0000F0
  4313.     cmp.w    $4C(a1),d2
  4314.     bcc    lbcC0000F0
  4315.     cmp.w    $4E(a1),d3
  4316.     bcc    lbcC0000F0
  4317.     tst.w    d4
  4318.     bmi    lbcC0000F0
  4319.     cmp.w    $4C(a0),d4
  4320.     bls    lbcC000054
  4321.     move.w    $4C(a0),d4
  4322. lbcC000054    tst.w    d5
  4323.     bmi    lbcC0000F0
  4324.     cmp.w    $4E(a0),d5
  4325.     bls    lbcC000064
  4326.     move.w    $4E(a0),d5
  4327. lbcC000064    sub.w    d0,d4
  4328.     bls    lbcC0000F0
  4329.     sub.w    d1,d5
  4330.     bls    lbcC0000F0
  4331.     move.w    d2,d7
  4332.     add.w    d4,d7
  4333.     sub.w    $4C(a1),d7
  4334.     bls    lbcC000080
  4335.     sub.w    d7,d4
  4336.     bls    lbcC0000F0
  4337. lbcC000080    move.w    d3,d7
  4338.     add.w    d5,d7
  4339.     sub.w    $4E(a1),d7
  4340.     bls    lbcC00008E
  4341.     sub.w    d7,d5
  4342.     bls    lbcC0000F0
  4343. lbcC00008E    ext.l    d0
  4344.     ext.l    d1
  4345.     ext.l    d2
  4346.     ext.l    d3
  4347.     ext.l    d4
  4348.     ext.l    d5
  4349.     movea.l    T_ChipBuf(a5),a2
  4350.     lea    $28(a2),a3
  4351.     move.w    $B2(a0),(a2)+
  4352.     move.w    $B2(a1),(a3)+
  4353.     move.w    $4E(a0),(a2)+
  4354.     move.w    $4E(a1),(a3)+
  4355.     move.w    $50(a0),(a2)+
  4356.     move.w    $50(a1),(a3)+
  4357.     clr.w    (a2)+
  4358.     clr.w    (a3)+
  4359.     movea.l    $344(a5),a0
  4360.     movea.l    $348(a5),a1
  4361.     moveq    #5,d7
  4362. lbcC0000C8    move.l    (a0)+,(a2)+
  4363.     move.l    (a1)+,(a3)+
  4364.     dbra    d7,lbcC0000C8
  4365.     movea.l    T_ChipBuf(a5),a0
  4366.     lea    $28(a0),a1
  4367.     lea    $28(a1),a2
  4368.     movea.l    T_EcVect(a5),a6
  4369.     jsr    ScCpyW*4(a6)
  4370.     beq    lbcC0000F0
  4371.     moveq    #-1,d7
  4372.     movea.l    T_GfxBase(a5),a6
  4373.     jsr    -30(a6)            ;BltBitMap
  4374. lbcC0000F0    movem.l    (sp)+,a3/a6
  4375.     rts
  4376. get_screen    equ    97
  4377. L97
  4378.     EcCall    AdrEc
  4379.     move.l    d0,a0
  4380.     rts
  4381. *******    SLIDE X source to dest
  4382. L_slidx    equ    98
  4383. L98
  4384. x_slide:
  4385.     move.l    (a3)+,d5
  4386.     move.l    (a3)+,d0
  4387.     movem.l    a3-a6,-(sp)
  4388.     movem.l    d0/d5,-(sp)
  4389.     Rbsr    L_clear
  4390.     move.l    d0,d1
  4391.     Rbsr    get_screen
  4392.     movem.l    (sp)+,d0/d5
  4393.     move.w    $4c(a0),d3
  4394.     move.w    $4e(a0),d4
  4395.     ext.l    d3
  4396.     ext.l    d4
  4397.     Dlea    _dy,a0
  4398.     move.l    #0,0(a0)
  4399.     move.l    #0,4(a0)
  4400.     move.l    #0,20(a0)
  4401.     move.l    d0,28(a0)    ;source
  4402.     move.l    d5,8(a0)    ;dest
  4403.     move.l    d4,12(a0)    ;y2
  4404.     move.l    d3,16(a0)    ;x2
  4405.     move.l    16(a0),d0
  4406.     sub.l    #1,d0
  4407.     move.l    d0,24(a0)    ;x1
  4408. scc2:    move.l    #0,4(a0)    ;x3
  4409. scc:    Dlea    _dy,a3
  4410.     Rbsr    L_sccopy
  4411.     Rbsr    tests
  4412.     Rbsr    L_getk
  4413.     cmp.l    #117,d3
  4414.     beq    sto
  4415.     Dlea    _dy,a0
  4416.     move.l    4(a0),d0    ;x3
  4417.     add.l    #1,d0
  4418.     move.l    d0,4(a0)    ;x3
  4419.     move.l    16(a0),d1    ;x2
  4420.     cmp.l    d0,d1
  4421.     bne    scc
  4422.     sub.l    #1,d1
  4423.     move.l    d1,16(a0)    ;x2
  4424.     move.l    16(a0),d1
  4425.     sub.l    #1,d1
  4426.     move.l    d1,24(a0)    ;x1
  4427.     cmp.l    #0,d1
  4428.     bpl    scc2
  4429. sto:    movem.l    (sp)+,a3-a6
  4430.     rts
  4431. *******    SLIDE Y source to dest
  4432. L_slidy    equ    99
  4433. L99
  4434. y_slide:
  4435.     move.l    (a3)+,d5
  4436.     move.l    (a3)+,d0
  4437.     movem.l    a3-a6,-(sp)
  4438.     movem.l    d0/d5,-(sp)
  4439.     Rbsr    L_clear
  4440.     move.l    d0,d1
  4441.     Rbsr    get_screen
  4442.     movem.l    (sp)+,d0/d5
  4443.     move.w    $4c(a0),d3
  4444.     move.w    $4e(a0),d4
  4445.     ext.l    d3
  4446.     ext.l    d4
  4447.     Dlea    _dy,a0
  4448.     move.l    #0,0(a0)    ;y3
  4449.     move.l    #0,4(a0)    ;x3
  4450.     move.l    #0,24(a0)    ;y1
  4451.     move.l    d0,28(a0)    ;source
  4452.     move.l    d5,8(a0)    ;dest
  4453.     move.l    d4,12(a0)    ;y2
  4454.     move.l    d3,16(a0)    ;x2
  4455.     move.l    12(a0),d0
  4456.     sub.l    #1,d0
  4457.     move.l    d0,20(a0)    ;y1
  4458. scc4:    move.l    #0,0(a0)    ;y3
  4459. scc3:    Dlea    _dy,a3
  4460.     Rbsr    L_sccopy
  4461.     Rbsr    tests
  4462.     Rbsr    L_getk
  4463.     cmp.l    #117,d3
  4464.     beq    sto2
  4465.     Dlea    _dy,a0
  4466.     move.l    0(a0),d0    ;y3
  4467.     add.l    #1,d0
  4468.     move.l    d0,0(a0)    ;y3
  4469.     move.l    12(a0),d1    ;y2
  4470.     cmp.l    d0,d1
  4471.     bne    scc3
  4472.     sub.l    #1,d1
  4473.     move.l    d1,12(a0)    ;y2
  4474.     move.l    12(a0),d1
  4475.     sub.l    #1,d1
  4476.     move.l    d1,20(a0)    ;y1
  4477.     cmp.l    #0,d1
  4478.     bpl    scc4
  4479. sto2:    movem.l    (sp)+,a3-a6
  4480.     rts
  4481. *******    SLIDE LEFT source to dest
  4482. L_slidl    equ    100
  4483. L100
  4484.     move.l    (a3)+,d5
  4485.     move.l    (a3)+,d0
  4486.     movem.l    a3-a6,-(sp)
  4487.     movem.l    d0/d5,-(sp)
  4488.     Rbsr    L_clear
  4489.     move.l    d0,d1
  4490.     Rbsr    get_screen
  4491.     movem.l    (sp)+,d0/d5
  4492.     move.w    $4c(a0),d3
  4493.     move.w    $4e(a0),d4
  4494.     ext.l    d3
  4495.     ext.l    d4
  4496.     Dlea    _dy,a0
  4497.     move.l    #0,0(a0)
  4498.     move.l    d3,4(a0)
  4499.     sub.l    #1,4(a0)
  4500.     move.l    #0,20(a0)
  4501.     move.l    d0,28(a0)    ;source
  4502.     move.l    d5,8(a0)    ;dest
  4503.     move.l    d4,12(a0)    ;y2
  4504.     move.l    d3,16(a0)    ;x2
  4505.     move.l    4(a0),24(a0)    ;x1
  4506. scca:    Dlea    _dy,a3
  4507.     Rbsr    L_sccopy
  4508.     Rbsr    tests
  4509.     Dlea    _dy,a0
  4510.     move.l    4(a0),d1    ;x3
  4511.     sub.l    #1,d1
  4512.     move.l    d1,4(a0)    ;x3
  4513.     move.l    d1,24(a0)    ;x1
  4514.     add.l    #1,d1
  4515.     move.l    d1,16(a0)    ;x2
  4516.     cmp.l    #0,d1
  4517.     bne    scca
  4518.     movem.l    (sp)+,a3-a6
  4519.     rts
  4520. *******    SLIDE RIGHT source to dest
  4521. L_slidr    equ    101
  4522. L101
  4523.     move.l    (a3)+,d5
  4524.     move.l    (a3)+,d0
  4525.     movem.l    a3-a6,-(sp)
  4526.     movem.l    d0/d5,-(sp)
  4527.     Rbsr    L_clear
  4528.     move.l    d0,d1
  4529.     Rbsr    get_screen
  4530.     movem.l    (sp)+,d0/d5
  4531.     move.w    $4c(a0),d3
  4532.     move.w    $4e(a0),d4
  4533.     ext.l    d3
  4534.     ext.l    d4
  4535.     movem.l    d3,-(sp)
  4536.     Dlea    _dy,a0
  4537.     move.l    #0,0(a0)
  4538.     move.l    #0,4(a0)
  4539.     move.l    #0,20(a0)
  4540.     move.l    d0,28(a0)    ;source
  4541.     move.l    d5,8(a0)    ;dest
  4542.     move.l    d4,12(a0)    ;y2
  4543.     move.l    #1,16(a0)    ;x2
  4544.     move.l    4(a0),24(a0)    ;x1
  4545. sccb:    Dlea    _dy,a3
  4546.     Rbsr    L_sccopy
  4547.     Rbsr    tests
  4548.     Dlea    _dy,a0
  4549.     add.l    #1,4(a0)    ;x3
  4550.     add.l    #1,24(a0)    ;x1
  4551.     add.l    #1,16(a0)    ;x2
  4552.     movem.l    (sp)+,d7
  4553.     movem.l    d7,-(sp)
  4554.     move.l    4(a0),d6
  4555.     cmp.l    d7,d6
  4556.     bne    sccb
  4557.     movem.l    (sp)+,d7
  4558.     movem.l    (sp)+,a3-a6
  4559.     rts
  4560.  
  4561. L_clear    equ    102
  4562. L102
  4563.     Dlea    _dy,a0
  4564.     move.l    #0,(a0)+
  4565.     move.l    #0,(a0)+
  4566.     move.l    #0,(a0)+
  4567.     move.l    #0,(a0)+
  4568.     move.l    #0,(a0)+
  4569.     move.l    #0,(a0)+
  4570.     move.l    #0,(a0)+
  4571.     move.l    #0,(a0)+
  4572.     rts
  4573. *******    SLIDE UP source to dest
  4574. L_slidu    equ    103
  4575. L103
  4576.     move.l    (a3)+,d5
  4577.     move.l    (a3)+,d0
  4578.     movem.l    a3-a6,-(sp)
  4579.     movem.l    d0/d5,-(sp)
  4580.     Rbsr    L_clear
  4581.     move.l    d0,d1
  4582.     Rbsr    get_screen
  4583.     movem.l    (sp)+,d0/d5
  4584.     move.w    $4c(a0),d3
  4585.     move.w    $4e(a0),d4
  4586.     ext.l    d3
  4587.     ext.l    d4
  4588.     Dlea    _dy,a0
  4589.     move.l    #0,4(a0)    ;x3
  4590.     move.l    d3,16(a0)    ;x2
  4591.     move.l    #0,24(a0)    ;x1
  4592.     move.l    d0,28(a0)    ;source
  4593.     move.l    d5,8(a0)    ;dest
  4594.     move.l    d4,12(a0)    ;y2
  4595.     sub.l    #1,d4
  4596.     move.l    d4,0(a0)    ;y3
  4597.     move.l    d4,20(a0)    ;y1
  4598. sccc:    Dlea    _dy,a3
  4599.     Rbsr    L_sccopy
  4600.     Rbsr    tests
  4601.     Dlea    _dy,a0
  4602.     sub.l    #1,0(a0)    ;y3
  4603.     sub.l    #1,20(a0)    ;y1
  4604.     sub.l    #1,12(a0)    ;y2
  4605.     move.l    #-1,d1
  4606. scw:    dbra    d1,scw
  4607.     move.l    12(a0),d1
  4608.     cmp.l    #0,d1
  4609.     bne    sccc
  4610.     movem.l    (sp)+,a3-a6
  4611.     rts
  4612. *******    SLIDE DOWN source to dest
  4613. L_slidd    equ    104
  4614. L104
  4615.     move.l    (a3)+,d5
  4616.     move.l    (a3)+,d0
  4617.     movem.l    a3-a6,-(sp)
  4618.     movem.l    d0/d5,-(sp)
  4619.     Rbsr    L_clear
  4620.     move.l    d0,d1
  4621.     Rbsr    get_screen
  4622.     movem.l    (sp)+,d0/d5
  4623.     move.w    $4c(a0),d3
  4624.     move.w    $4e(a0),d4
  4625.     ext.l    d3
  4626.     ext.l    d4
  4627.     Dlea    _dy,a0
  4628.     move.l    #0,4(a0)    ;x3
  4629.     move.l    d3,16(a0)    ;x2
  4630.     move.l    #0,24(a0)    ;x1
  4631.     move.l    d0,28(a0)    ;source
  4632.     move.l    d5,8(a0)    ;dest
  4633.     move.l    #1,12(a0)    ;y2
  4634.     move.l    #0,0(a0)    ;y3
  4635.     move.l    #0,20(a0)    ;y1
  4636.     movem.l    d4,-(sp)
  4637. scce:    Dlea    _dy,a3
  4638.     Rbsr    L_sccopy
  4639.     Rbsr    tests
  4640.     Dlea    _dy,a0
  4641.     add.l    #1,0(a0)    ;y3
  4642.     add.l    #1,20(a0)    ;y1
  4643.     add.l    #1,12(a0)    ;y2
  4644.     move.l    #-1,d7
  4645. scw2:    dbra    d7,scw2
  4646.     move.l    20(a0),d6
  4647.     movem.l    (sp)+,d7
  4648.     movem.l    d7,-(sp)
  4649.     cmp.l    d6,d7
  4650.     bne    scce
  4651.     movem.l    (sp)+,d7
  4652.     movem.l    (sp)+,a3-a6
  4653.     rts
  4654. *******    INSTALL device
  4655. L_install    equ    105
  4656. L105    
  4657.     movem.l    a3-a6,-(sp)
  4658.     Rbsr    uninit
  4659.     Mlea    bb,a0
  4660.     move.l    a0,a3
  4661.     lea    bbd(pc),a1
  4662.     move.l    #12,d0
  4663. l0l:    move.l    (a1)+,(a3)+
  4664.     dbra    d0,l0l
  4665.     movem.l    (sp)+,a3-a6
  4666.     move.l    (a3)+,d0
  4667.     move.l    a0,-(a3)
  4668.     move.l    d0,-(a3)
  4669.     move.l    #0,-(a3)
  4670.     Rbra    L_wsec
  4671. bbd:    dc.w    512
  4672.     dc.l    $444f5300,$c0200f19,$00000370,$43fa0018
  4673.     dc.l    $4eaeffa0,$4a80670a,$20402068,$00167000
  4674.     dc.l    $4e7570ff,$60fa646f,$732e6c69,$62726172
  4675.     dc.l    $7900
  4676. *******    FORMAT(device,name)
  4677. L_format    equ    106
  4678. L106
  4679.     move.l    (a3)+,a0
  4680.     move.l    (a3)+,d0
  4681.     movem.l    a3-a6,-(sp)
  4682.     Dsave3    #0,d0,a0,tracknr,device,d_name
  4683.     Rbsr    nulltracks
  4684.     Rbsr    L_opend
  4685. folop:    Dmove    tracknr,d1    ***0to159
  4686.     cmp.l    #160,d1
  4687.     beq    foend
  4688.     cmp.l    #0,d1
  4689.     bne    no_dos
  4690.     Mlea    tracks,a0
  4691.     move.l    #$444f5300,(a0)+
  4692.     move.l    #$bbb0a98f,(a0)+
  4693.     move.l    #$370,(a0)+
  4694.     bra    wrroot
  4695. no_dos:    cmp.l    #1,d1
  4696.     bne    no_boot
  4697.     Mlea    tracks,a0
  4698.     move.l    #0,(a0)+
  4699.     move.l    #0,(a0)+
  4700.     move.l    #0,(a0)+
  4701.     bra    wrroot
  4702. no_boot:
  4703.     cmp.l    #81,d1
  4704.     bne    n_rest
  4705.     move.l    #240,d0
  4706.     Mlea    tracks,a0
  4707. crest:    move.l    #0,(a0)+
  4708.     dbra    d0,crest
  4709.     bra    wrroot
  4710. n_rest:    cmp.l    #80,d1
  4711.     bne    wrroot
  4712.     Mlea    tracks,a0
  4713.     Dlea    roottrack,a1
  4714.     move.l    #183,d0
  4715. bc:    move.l    (a1)+,(a0)+
  4716.     dbra    d0,bc
  4717.     move.l    #71,d0
  4718. bc2:    move.l    #0,(a0)+
  4719.     dbra    d0,bc2
  4720.     Mlea    tracks,a1
  4721.     add.l    #432,a1
  4722.     Dmove    d_name,a0
  4723.     add.l    #1,a0
  4724. stname:    move.b    (a0)+,(a1)+
  4725. stnam:    move.b    (a0)+,(a1)+
  4726.     bne    stnam
  4727.     Mlea    tracks,a1
  4728.     bsr    t_checksum
  4729. wrroot:    bsr    twr
  4730.     cmp.l    #0,d7
  4731.     bne    foend
  4732.     Dmove    tracknr,d1
  4733.     add.l    #1,d1
  4734.     Dsave    d1,tracknr
  4735.     bra    folop
  4736. foend:    Rbsr    L_motor
  4737.     Rbsr    L_closd
  4738.     bra    foend3
  4739. foend2:    move.l    #-1,d7
  4740. foend3:    movem.l    (sp)+,a3-a6
  4741.     move.l    d7,d3
  4742.     moveq    #0,d2
  4743.     rts
  4744. t_checksum
  4745.     moveq    #$7F,d1
  4746.     moveq    #0,d0
  4747.     movea.l    a1,a0
  4748.     clr.l    $14(a1)
  4749. t_chksum
  4750.     sub.l    (a0)+,d0
  4751.     dbra    d1,t_chksum
  4752.     move.l    d0,$14(a1)
  4753.     rts
  4754. twr:    Dlea    diskio,a1
  4755.     Dlea    msgport,a0
  4756.     move.l    a0,14(a1)
  4757.     move.w    #11,28(a1)
  4758.     Mlea    tracks,a0
  4759.     move.l    a0,40(a1)
  4760.     Dmove    tracknr,d2
  4761.      mulu.w    #$1600,d2
  4762.     move.l    d2,44(a1)
  4763.     move.l    #$1600,36(a1)
  4764.     move.l    4,a6
  4765.     jsr    -456(a6)
  4766.     cmp.l    #0,d0
  4767.     beq    twok
  4768.     move.l    #-1,d7
  4769. twok:    rts
  4770. *******    COPY(file to file)
  4771. L_fcopy    equ    107
  4772. L107
  4773. fcopy:    move.l    (a3)+,a1
  4774.     move.l    (a3)+,a0
  4775.     movem.l    a3-a6,-(sp)
  4776.     add.l    #2,a0
  4777.     add.l    #2,a1
  4778.     Dsave2    a0,a1,f1name,f2name
  4779.     move.l    DosBase(a5),a6
  4780.     Dmove    f1name,a0
  4781.     move.l    a0,d1
  4782.     move.l    #-2,d2
  4783.     jsr    -84(a6)
  4784.     cmp.l    #0,d0
  4785.     beq    ende3
  4786.     Dsave    d0,_lock
  4787.     move.l    d0,d1
  4788.     Dlea    fib,a0
  4789.     move.l    a0,d2
  4790.     jsr    -102(a6)
  4791.     Dlea    fib,a0
  4792.     move.l    124(a0),d0
  4793.     Dsave    d0,efflen
  4794.     Dmove    _lock,d1
  4795.     jsr    -90(a6)
  4796.     move.l    4,a6
  4797.     Dmove    efflen,d0
  4798.     move.l    #$10002,d1
  4799.     jsr    -198(a6)
  4800.     Dsave    d0,buffer_adr
  4801.     beq    no_buffermem
  4802.     movem.l    (sp)+,a3-a6
  4803.     movem.l    a3-a6,-(sp)
  4804.     move.l    DosBase(a5),a6
  4805.     moveq    #0,d0
  4806.     Dmove    f1name,d1
  4807.     move.l    #1005,d2
  4808.     jsr    -30(a6)
  4809.     Dsave    d0,filehandle
  4810.     Dmove3    filehandle,buffer_adr,efflen,d1,d2,d3
  4811.     jsr    -42(a6)
  4812.     Dmove    filehandle,d1
  4813.     jsr    -36(a6)
  4814.     Dmove    f2name,d1
  4815.     move.l    #1006,d2
  4816.     jsr    -30(a6)
  4817.     Dsave    d0,filehandle
  4818.     cmp.l    #0,d0
  4819.     beq    coperror
  4820.     Dmove3    filehandle,buffer_adr,efflen,d1,d2,d3
  4821.     jsr    -48(a6)
  4822.     Dmove    filehandle,d1
  4823.     jsr    -36(a6)
  4824.     move.l    4,a6
  4825.     Dmove2    buffer_adr,efflen,a1,d0
  4826.     jsr    -210(a6)
  4827.     moveq    #0,d3
  4828.     bra    ende4
  4829. coperror:
  4830.     move.l    4,a6
  4831.     Dmove2    buffer_adr,efflen,a1,d0
  4832.     jsr    -210(a6)
  4833. ende3:    move.l    #-1,d3
  4834. ende4:    moveq    #0,d2
  4835.     movem.l    (sp)+,a3-a6
  4836.     rts
  4837. no_buffermem:
  4838.     movem.l    (sp)+,a3-a6
  4839.     moveq    #24,d0
  4840.     Rjmp    L_Error
  4841.  
  4842. nulltracks    equ    108
  4843. L108
  4844.     movem.l    d0-d7/a0-a6,-(sp)
  4845.     Mlea    tracks,a0
  4846.     move.l    #$15ff,d0
  4847. ntl:    move.b    #0,(a0)+
  4848.     dbra    d0,ntl
  4849.     movem.l    (sp)+,d0-d7/a0-a6
  4850.     rts
  4851. *******    RELABEL device,"name"
  4852. L_relab    equ    109
  4853. L109
  4854. relab:    move.l    (a3)+,a0
  4855.     move.l    (a3)+,d0
  4856.     movem.l    a3-a6,-(sp)
  4857.     Dsave3    a0,d0,#512,d_name,device,wrlen
  4858.     move.l    d0,-(a3)
  4859.     move.l    #880,-(a3)
  4860.     Rbsr    L_rsec
  4861.     cmp.l    #0,d3
  4862.     beq    relerr
  4863.     move.l    d3,a1
  4864.     Dsave    d3,var_buffer
  4865.     add.l    #2,a1
  4866.     add.l    #432,a1
  4867.     Dmove    d_name,a0
  4868.     add.l    #1,a0
  4869.     move.b    (a0)+,(a1)+
  4870. stnam2:    move.b    (a0)+,(a1)+
  4871.     bne    stnam2
  4872.     Dmove    var_buffer,a1
  4873.     add.l    #2,a1
  4874.     bsr    t_checksum2
  4875.     Dmove2    var_buffer,device,a0,d0
  4876.     move.l    a0,-(a3)
  4877.     move.l    d0,-(a3)
  4878.     move.l    #880,-(a3)
  4879.     Rbsr    L_wsec
  4880. relerr:    movem.l    (sp)+,a3-a6
  4881.     rts
  4882. t_checksum2:
  4883.     moveq    #$7F,d1
  4884.     moveq    #0,d0
  4885.     movea.l    a1,a0
  4886.     clr.l    $14(a1)
  4887. t_chksum2:
  4888.     sub.l    (a0)+,d0
  4889.     dbra    d1,t_chksum2
  4890.     move.l    d0,$14(a1)
  4891.     rts
  4892. *******    SHORTFORMAT(device,name)
  4893. L_sformat    equ    110
  4894. L110
  4895.     move.l    (a3)+,a0
  4896.     move.l    (a3)+,d0
  4897.     movem.l    a3-a6,-(sp)
  4898.     Dsave3    #80,d0,a0,tracknr,device,d_name
  4899.     Rbsr    nulltracks
  4900.     Rbsr    L_opend
  4901. sfolop:    Dmove    tracknr,d1
  4902.     cmp.l    #82,d1
  4903.     beq    sfoend
  4904.     cmp.l    #81,d1
  4905.     bne    sn_rest
  4906.     move.l    #240,d0
  4907.     Mlea    tracks,a0
  4908. screst:    move.l    #0,(a0)+
  4909.     dbra    d0,screst
  4910.     bra    swrroot
  4911. sn_rest:
  4912.     cmp.l    #80,d1
  4913.     bne    swrroot
  4914.     Mlea    tracks,a0
  4915.     Dlea    roottrack,a1
  4916.     move.l    #183,d0
  4917. sbc:    move.l    (a1)+,(a0)+
  4918.     dbra    d0,sbc
  4919.     move.l    #71,d0
  4920. bc_2:    move.l    #0,(a0)+
  4921.     dbra    d0,bc_2
  4922.     Mlea    tracks,a1
  4923.     add.l    #432,a1
  4924.     Dmove    d_name,a0
  4925.     add.l    #1,a0
  4926. sstname:
  4927.     move.b    (a0)+,(a1)+
  4928. sstnam:    move.b    (a0)+,(a1)+
  4929.     bne    sstnam
  4930.     Mlea    tracks,a1
  4931.     bsr    st_checksum
  4932. swrroot:
  4933.     bsr    stwr
  4934.     cmp.l    #0,d7
  4935.     bne    sfoend
  4936.     Dmove    tracknr,d1
  4937.     add.l    #1,d1
  4938.     Dsave    d1,tracknr
  4939.     bra    sfolop
  4940. sfoend:    Rbsr    L_motor
  4941.     Rbsr    L_closd
  4942.     bra    sfoend3
  4943. sfoend2:
  4944.     move.l    #-1,d7
  4945. sfoend3:
  4946.     movem.l    (sp)+,a3-a6
  4947.     move.l    d7,d3
  4948.     moveq    #0,d2
  4949.     rts
  4950. st_checksum
  4951.     moveq    #$7F,d1
  4952.     moveq    #0,d0
  4953.     movea.l    a1,a0
  4954.     clr.l    $14(a1)
  4955. st_chksum
  4956.     sub.l    (a0)+,d0
  4957.     dbra    d1,st_chksum
  4958.     move.l    d0,$14(a1)
  4959.     rts
  4960. stwr:    Dlea    diskio,a1
  4961.     Dlea    msgport,a0
  4962.     move.l    a0,14(a1)
  4963.     move.w    #11,28(a1)
  4964.     Mlea    tracks,a0
  4965.     move.l    a0,40(a1)
  4966.     Dmove    tracknr,d2
  4967.      mulu.w    #$1600,d2
  4968.     move.l    d2,44(a1)
  4969.     move.l    #$1600,36(a1)
  4970.     move.l    4,a6
  4971.     jsr    -456(a6)
  4972.     cmp.l    #0,d0
  4973.     beq    stwok
  4974.     move.l    #-1,d7
  4975. stwok:    rts
  4976. *******    SQUASH string,richtung,delay
  4977. L_squa    equ    111
  4978. L111
  4979.     move.l    (a3)+,d2
  4980.     move.l    (a3)+,d1
  4981.     move.l    (a3)+,a0
  4982.     moveq    #0,d0
  4983.     move.w    (a0),d0
  4984.     beq    sqend
  4985.     cmp.l    #0,d2
  4986.     bpl    d4ok
  4987.     move.l    #10,d2
  4988. d4ok:    Dsave4    d2,d0,d1,a0,timer,len,ri,string
  4989.     movem.l    a3-a6,-(sp)
  4990.     move.l    DosBase(a5),a6
  4991.     Dmove    len,d1
  4992.     Rbsr    getmem
  4993.     Dmove3    string,var_buffer,len,a0,a1,d0
  4994.     move.w    (a0)+,(a1)+
  4995.     sub.w    #1,d0
  4996. flop:    move.b    (a0)+,(a1)+
  4997.     dbra    d0,flop
  4998.     Dmove    var_buffer,a1
  4999.     add.l    #2,a1
  5000.     WiCall    Centre
  5001.     movem.l    d0-d7,-(sp)
  5002.     Rbsr    tests
  5003.     Dmove    timer,d1
  5004.     jsr    -198(a6)
  5005.     movem.l    (sp)+,d0-d7
  5006.     Dmove    ri,d0
  5007.     bmi    sq2
  5008.     Dmove    len,d0
  5009.     move.l    d0,d1
  5010.     lsr.l    d0
  5011.     lsl.l    d0
  5012.     cmp.l    d0,d1
  5013.     beq    sqeven
  5014.     Dmove2    var_buffer,len,a0,d0
  5015.     lsr.l    d0
  5016.     add.l    #1,d0
  5017.     move.l    a0,-(a3)
  5018.     move.l    d0,-(a3)
  5019.     move.l    #1,-(a3)
  5020.     Rbsr    L_cut
  5021.     Dsave    d3,var_buffer
  5022.     Dmove    var_buffer,a1
  5023.     moveq    #0,d0
  5024.     move.w    (a1),d0
  5025.     add.l    #2,d0
  5026.     move.l    a1,-(a3)
  5027.     move.l    d0,-(a3)
  5028.     move.l    #0,-(a3)
  5029.     Rbsr    L_ext
  5030.     Dmove    var_buffer,a1
  5031.     add.l    #2,a1
  5032.     WiCall    Centre
  5033.     Rbsr    tests
  5034.     Dmove    timer,d1
  5035.     jsr    -198(a6)
  5036. sqeven:    Dmove    var_buffer,a0
  5037.     move.w    (a0)+,d0
  5038.     ext.l    d0
  5039.     Dsave    d0,efflen
  5040.     lsr.l    d0
  5041.     Dsave    d0,pos
  5042. sqs:    sub.l    #1,d0
  5043.     cmp.l    #0,d0
  5044.     beq    vsqready
  5045.     Dsave    d0,schl
  5046.     Dmove2    pos,var_buffer,d0,a0
  5047.     move.l    a0,-(a3)
  5048.     move.l    d0,-(a3)
  5049.     move.l    #2,-(a3)
  5050.     Rbsr    L_cut
  5051.     Dmove    efflen,d0
  5052.     move.l    d3,-(a3)
  5053.     move.l    d0,-(a3)
  5054.     move.l    #0,-(a3)
  5055.     Rbsr    L_ext
  5056.     move.l    d3,a1
  5057.     add.l    #2,a1
  5058.     WiCall    Centre
  5059.     Rbsr    tests
  5060.     Dmove    timer,d1
  5061.     jsr    -198(a6)
  5062.     Dmove    schl,d0
  5063.     bra    sqs    
  5064. vsqready:
  5065.     Dlea    blank2,a1
  5066.     WiCall    Centre
  5067. sqready:
  5068.     movem.l    (sp)+,a3-a6
  5069. sqend:    rts
  5070. sq2:    Dmove    var_buffer,a0
  5071.     add.l    #2,a0
  5072.     Dsave    a0,var_buffer
  5073.     Dmove    len,d7
  5074.     move.l    d7,d1
  5075.     lsr.l    d7
  5076.     sub.l    #1,d7
  5077.     move.l    #0,d0
  5078. sq2l:    Dsave    d7,men
  5079.     move.b    #' ',(a0,d0)
  5080.     add.l    #1,d0
  5081.     sub.l    d0,d1
  5082.     move.b    #' ',(a0,d1)
  5083.     Dmove    var_buffer,a1
  5084.     movem.l    a0/d0-d7,-(sp)
  5085.     WiCall    Centre
  5086.     Rbsr    tests
  5087.     Dmove    timer,d1
  5088.     jsr    -198(a6)
  5089.     movem.l    (sp)+,a0/d0-d7
  5090.     Dmove2    len,men,d1,d7
  5091.     dbra    d7,sq2l
  5092.     Dmove    len,d0
  5093.     move.l    d0,d1
  5094.     lsr.l    d0
  5095.     lsl.l    d0
  5096.     cmp.l    d0,d1
  5097.     beq    sqready
  5098.     lsr.l    d0
  5099.     Dmove    var_buffer,a1
  5100.     move.b    #' ',(a1,d0)
  5101.     WiCall    Centre
  5102.     bra    sqready
  5103. *******    VIDEO ON
  5104. L_scon    equ    112
  5105. L112
  5106.     move.w    #$81a0,$dff096
  5107.     rts
  5108. *******    VIDEO OFF
  5109. L_scoff    equ    113
  5110. L113
  5111. scoff:    move.w    #$01a0,$dff096
  5112.     move.w    #0,$dff180
  5113.     rts
  5114. *******    LARGEST CHIP FREE
  5115. L_lcf    equ    114
  5116. L114
  5117.     move.l    #$20002,d1
  5118.     Rbra    fcfree
  5119. *******    LARGEST FAST FREE
  5120. L_lff    equ    115
  5121. L115
  5122.     move.l    #$20004,d1
  5123.     Rbra    fcfree
  5124.  
  5125. fcfree    equ    116
  5126. L116
  5127.     movem.l    a3-a6,-(sp)
  5128.     move.l    4,a6
  5129.     jsr    -216(a6)
  5130.     move.l    d0,d3
  5131.     moveq    #0,d2
  5132.     movem.l    (sp)+,a3-a6
  5133.     rts
  5134.  
  5135. *******    FILE SIZE("filename")
  5136. L_fsize    equ    117
  5137. L117
  5138.     move.l    (a3)+,a0
  5139.     movem.l    a3-a6,-(sp)
  5140.     Rbsr    L_examine
  5141.     tst.l    d0
  5142.     beq    size_err
  5143.     Dlea    fib,a0
  5144.     move.l    124(a0),d3
  5145. size_x    moveq    #0,d2
  5146.     movem.l    (sp)+,a3-a6
  5147.     rts
  5148. size_err
  5149.     move.l    #-1,d3
  5150.     bra    size_x
  5151.  
  5152. *******    FILE TYPE("filename")
  5153. L_ftype    equ    118
  5154. L118
  5155.     move.l    (a3)+,a0
  5156.     movem.l    a3-a6,-(sp)
  5157.     Rbsr    L_examine
  5158.     tst.l    d0
  5159.     beq    io_err
  5160.     Dlea    fib,a0
  5161.     move.l    4(a0),d3
  5162. io_err    moveq    #0,d2
  5163.     movem.l    (sp)+,a3-a6
  5164.     rts
  5165.  
  5166. *******    PP MEM(end)
  5167. L_ppmem    equ    119
  5168. L119
  5169.     move.l    (a3)+,d0
  5170.     subq.l    #4,d0
  5171.     movea.l    d0,a0
  5172.     move.l    (a0),d0
  5173.     andi.l    #$FFFFFF00,d0
  5174.     asr.l    #8,d0
  5175.     move.l    d0,d3
  5176.     moveq    #0,d2
  5177.     rts
  5178.  
  5179. *******    PP DECRUNCH start,end,destination
  5180. L_ppdecrunch    equ    120
  5181. L120
  5182.     movea.l    (a3)+,a1
  5183.     movea.l    (a3)+,a0
  5184.     movea.l    (a3)+,a2
  5185.     move.l    4(a2),d0
  5186.     movem.l    d1-d7/a2-a6,-(sp)
  5187.     bsr    decrunch
  5188.     movem.l    (sp)+,d1-d7/a2-a6
  5189.     rts
  5190. decrunch
  5191.     lea    lb002E94(pc),a5
  5192.     move.l    d0,(a5)
  5193.     move.l    a1,a2
  5194.     move.l    -(a0),d5
  5195.     moveq    #0,d1
  5196.     move.b    d5,d1
  5197.     lsr.l    #8,d5
  5198.     add.l    d5,a1
  5199.     move.l    -(a0),d5
  5200.     lsr.l    d1,d5
  5201.     move.b    #$20,d7
  5202.     sub.b    d1,d7
  5203. lb002E0E
  5204.     bsr    lb002E7A
  5205.     tst.b    d1
  5206.     bne    lb002E34
  5207.     moveq    #0,d2
  5208. lb002E16
  5209.     moveq    #2,d0
  5210.     bsr    lb002E7C
  5211.     add.w    d1,d2
  5212.     cmp.w    #3,d1
  5213.     beq    lb002E16
  5214. lb002E22
  5215.     move.w    #8,d0
  5216.     bsr    lb002E7C
  5217.     move.b    d1,-(a1)
  5218.     dbra    d2,lb002E22
  5219.     cmp.l    a1,a2
  5220.     bcs    lb002E34
  5221.     rts
  5222. lb002E34
  5223.     moveq    #2,d0
  5224.     bsr    lb002E7C
  5225.     moveq    #0,d0
  5226.     move.b    0(a5,d1.w),d0
  5227.     move.l    d0,d4
  5228.     move.w    d1,d2
  5229.     addq.w    #1,d2
  5230.     cmp.w    #4,d2
  5231.     bne    lb002E66
  5232.     bsr    lb002E7A
  5233.     move.l    d4,d0
  5234.     tst.b    d1
  5235.     bne    lb002E54
  5236.     moveq    #7,d0
  5237. lb002E54
  5238.     bsr    lb002E7C
  5239.     move.w    d1,d3
  5240. lb002E58
  5241.     moveq    #3,d0
  5242.     bsr    lb002E7C
  5243.     add.w    d1,d2
  5244.     cmp.w    #7,d1
  5245.     beq    lb002E58
  5246.     bra    lb002E6A
  5247. lb002E66
  5248.     bsr    lb002E7C
  5249.     move.w    d1,d3
  5250. lb002E6A
  5251.     move.b    0(a1,d3.w),d0
  5252.     move.b    d0,-(a1)
  5253.     dbra    d2,lb002E6A
  5254.     cmp.l    a1,a2
  5255.     bcs    lb002E0E
  5256.     rts
  5257. lb002E7A
  5258.     moveq    #1,d0
  5259. lb002E7C
  5260.     moveq    #0,d1
  5261.     subq.w    #1,d0
  5262. lb002E80
  5263.     lsr.l    #1,d5
  5264.     roxl.l    #1,d1
  5265.     subq.b    #1,d7
  5266.     bne    lb002E8E
  5267.     move.b    #$20,d7
  5268.     move.l    -(a0),d5
  5269. lb002E8E
  5270.     dbra    d0,lb002E80
  5271.     rts
  5272. lb002E94
  5273.     movep.w    $B0B(a2),d4
  5274.     movem.l    a4-a6,-(sp)
  5275.     movea.l    (a3)+,a1
  5276.     movea.l    (a3)+,a0
  5277.     move.l    (a3)+,d1
  5278.     move.l    (a3)+,d0
  5279.     move.l    a1,a2
  5280.     suba.l    a0,a2
  5281.     move.b    -(a0),d5
  5282. lb002F50
  5283.     cmp.l    a1,a0
  5284.     beq    lb002F64
  5285.     move.b    (a0)+,d5
  5286.     cmp.b    (a0),d0
  5287.     bne    lb002F50
  5288.     move.b    d1,(a0)
  5289.     bra    lb002F50
  5290. lb002F64
  5291.     movem.l    (sp)+,a4-a6
  5292.     rts
  5293. *******    STREAM$(start,end,LF)
  5294. L_stream    equ    121
  5295. L121
  5296. stream    move.l    (a3)+,d6
  5297.     move.l    (a3)+,a1
  5298.     move.l    (a3)+,a0
  5299.     movem.l    a3-a6,-(sp)
  5300.     moveq    #0,d7
  5301.     cmp.l    a0,a1
  5302.     beq    terminate
  5303.     move.l    a0,a2
  5304. cmplf    move.b    (a2)+,d5
  5305.     cmp.b    d6,d5
  5306.     beq    foundlf
  5307.     add.w    #1,d7
  5308.     bra    cmplf
  5309. foundlf    move.l    d7,d0
  5310.     Rbsr    getmem
  5311.     Dmove    var_buffer,a2
  5312.     cmp.l    #0,a2
  5313.     beq    nolstrmem
  5314.     move.w    d7,(a2)+
  5315.     sub.w    #1,d7
  5316. clstr    move.b    (a0)+,(a2)+
  5317.     cmp.l    a0,a1
  5318.     beq    endx
  5319.     dbra.w    d7,clstr
  5320. endx    move.b    #0,(a2)
  5321.     Dmove    var_buffer,d3
  5322.     moveq    #2,d2
  5323.     movem.l    (sp)+,a3-a6
  5324.     rts
  5325. nolstrmem
  5326.     movem.l    (sp)+,a3-a6
  5327.     moveq    #24,d0
  5328.     Rjmp    L_Error
  5329. terminate
  5330.     move.w    #4,d0
  5331.     Rbsr    getmem
  5332.     Dmove    var_buffer,d3
  5333.     cmp.l    #0,d3
  5334.     beq    nolstrmem
  5335.     moveq    #2,d2
  5336.     movem.l    (sp)+,a3-a6
  5337.     rts
  5338. *******    FILE PROCTECTION("filename")
  5339. L_fprot    equ    122
  5340. L122
  5341.     move.l    (a3)+,a0
  5342.     movem.l    a3-a6,-(sp)
  5343.     Rbsr    L_examine
  5344.     tst.l    d0
  5345.     beq    prot_err
  5346.     Dlea    fib,a0
  5347.     move.l    116(a0),d3
  5348. prot_x    moveq    #0,d2
  5349.     movem.l    (sp)+,a3-a6
  5350.     rts
  5351. prot_err
  5352.     move.l    #-1,d3
  5353.     bra    prot_x
  5354. *******    FILE COMMENT$("filename")
  5355. L_fcomm    equ    123
  5356. L123
  5357.     move.l    (a3)+,a0
  5358.     movem.l    a3-a6,-(sp)
  5359.     Rbsr    L_examine
  5360.     tst.l    d0
  5361.     beq    comm_err
  5362.     Dlea    fib,a0
  5363.     add.l    #143,a0
  5364.     movem.l    a0,-(sp)
  5365.     moveq    #0,d0
  5366. comm_x    move.l    #116,d0
  5367.     Rbsr    get_mem
  5368.     Dmove    var_buffer,a1
  5369.     movem.l    (sp)+,a0
  5370.     cmp.l    #0,a1
  5371.     beq    nocommem
  5372.     add.l    #1,a1
  5373.     moveq    #0,d0
  5374.     move.l    #$ffff,d1
  5375.     move.b    #116,d0
  5376.     sub.l    #1,d0
  5377. comml    move.b    (a0)+,d2
  5378.     cmp.b    #0,d2
  5379.     beq    commlx
  5380.     add.w    #1,d1
  5381.     move.b    d2,(a1)+
  5382.     dbra    d0,comml
  5383. commlx    moveq    #2,d2
  5384.     Dmove    var_buffer,a0
  5385.     move.w    d1,(a0)
  5386.     move.l    a0,d3
  5387.     movem.l    (sp)+,a3-a6
  5388.     rts
  5389. nocommem
  5390.     movem.l    (sp)+,a3-a6
  5391.     moveq    #24,d0
  5392.     Rjmp    L_Error
  5393. comm_err
  5394.     Dlea    command,a0
  5395.     bra    comm_x
  5396.  
  5397. L_examine    equ    124
  5398. L124
  5399.     move.l    dosbase(a5),a6
  5400.     move.w    (a0)+,d0
  5401.     cmp.w    #0,d0
  5402.     bne    no_missing
  5403.     moveq    #0,d0
  5404.     moveq    #0,d3
  5405.     rts
  5406. no_missing
  5407.     move.l    a0,d1
  5408.     move.l    #-2,d2
  5409.     jsr    -84(a6)
  5410.     tst.l    d0
  5411.     bne    lock_found
  5412.     moveq    #0,d3
  5413.     rts
  5414. lock_found
  5415.     move.l    d0,d5
  5416.     move.l    d0,d1
  5417.     Dlea    fib,a0
  5418.     move.l    a0,d2
  5419.     jsr    -102(a6)
  5420.     tst.l    d0
  5421.     bne    no_ioerr
  5422.     moveq    #0,d3
  5423.     rts
  5424. no_ioerr
  5425.     move.l    d5,d1
  5426.     jsr    -90(a6)
  5427.     moveq    #1,d0
  5428.     rts
  5429.  
  5430. *******    SET PROTECTION("filename",bits)
  5431. L_sprot    equ    125
  5432. L125
  5433.     movem.l    (a3)+,d2/a0
  5434.     movem.l    a3-a6,-(sp)
  5435.     moveq    #0,d3
  5436.     move.l    DosBase(a5),a6
  5437.     move.w    (a0)+,d1
  5438.     beq    sprot_err
  5439.     move.l    a0,d1
  5440.     jsr    -186(a6)
  5441.     move.l    d0,d3
  5442. sprot_err
  5443.     moveq    #0,d2
  5444.     movem.l    (sp)+,a3-a6
  5445.     rts
  5446. *******    SET COMMENT("filename","comment")
  5447. L_scomm    equ    126
  5448. L126
  5449.     move.l    (a3)+,a1
  5450.     move.l    (a3)+,a0
  5451.     movem.l    a3-a6,-(sp)
  5452.     moveq    #0,d3
  5453.     move.l    DosBase(a5),a6
  5454.     move.w    (a0)+,d1
  5455.     beq    scomm_err
  5456.     move.w    (a1)+,d1
  5457.     beq    scomm_err
  5458.     move.l    a0,d1
  5459.     move.l    a1,d2
  5460.     jsr    -180(a6)
  5461.     move.l    d0,d3
  5462. scomm_err
  5463.     moveq    #0,d2
  5464.     movem.l    (sp)+,a3-a6
  5465.     rts
  5466. *******    DISTANCE(x1,y1 to x2,y2)
  5467. L_dist    equ    127
  5468. L127
  5469. dist:    move.l    (a3)+,d3
  5470.     move.l    (a3)+,d2
  5471.     move.l    (a3)+,d1
  5472.     move.l    (a3)+,d0
  5473.     movem.l    a3-a6,-(sp)
  5474.     Rbsr    L_openmt
  5475.     cmp.l    #0,a6
  5476.     beq    no_math
  5477.     sub.l    d1,d3
  5478.     sub.l    d0,d2
  5479.     move.l    d2,d6
  5480.     move.l    d3,d0
  5481.     jsr    -36(a5)
  5482.     move.l    #$80000042,d1
  5483.     jsr    -90(a6)
  5484.     move.l    d0,d7
  5485.     move.l    d6,d0
  5486.     jsr    -36(a5)
  5487.     move.l    #$80000042,d1
  5488.     jsr    -90(a6)
  5489.     move.l    d7,d1
  5490.     jsr    -66(a5)
  5491.     jsr    -96(a6)
  5492.     jsr    -30(a5)
  5493. no_math:
  5494.     movem.l    (sp)+,a3-a6
  5495.     move.l    d0,d3
  5496.     moveq    #0,d2
  5497.     rts
  5498. *******    PI#
  5499. L_p    equ    128
  5500. L128
  5501.     move.l    #$c90fdb42,d3
  5502.     moveq    #1,d2
  5503.     rts
  5504. *******    ARCUS(x1,y1 to x2,y2)
  5505. L_arcus    equ    129
  5506. L129
  5507.     movem.l    (a3)+,d0-d3
  5508.     movem.l    a3-a6,-(sp)
  5509.     Rbsr    L_openmt
  5510.     cmp.l    #0,a6
  5511.     beq    no_math2
  5512.     sub.l    d1,d3
  5513.     sub.l    d0,d2
  5514.     cmp.l    #0,d3
  5515.     bne    no90
  5516.     cmp.l    #0,d2
  5517.     bmi    is270
  5518.     move.l    #90,d3
  5519.     bra    arcexit
  5520. is270:    move.l    #270,d3
  5521.     bra    arcexit
  5522. no90:    move.l    #180,d7
  5523.     cmp.l    #0,d3
  5524.     bpl    lower
  5525.     move.l    #0,d7
  5526. lower:    move.l    d2,d0
  5527.     jsr    -36(a5)
  5528.     move.l    d0,d6
  5529.     move.l    d3,d0
  5530.     jsr    -36(a5)
  5531.     move.l    d0,d1
  5532.     move.l    d6,d0
  5533.     jsr    -84(a5)
  5534.     jsr    -30(a6)
  5535.     move.l    #$e52f1a46,d1
  5536.     jsr    -78(a5)
  5537.     jsr    -30(a5)
  5538.     move.l    d0,d3
  5539.     cmp.l    #0,d3
  5540.     bpl    noarcadd
  5541.     add.l    #360,d3
  5542. noarcadd:
  5543.     add.l    d7,d3
  5544.     cmp.l    #360,d3
  5545.     bmi    arcexit
  5546.     sub.l    #360,d3
  5547. arcexit    movem.l    (sp)+,a3-a6
  5548.     moveq    #0,d2
  5549.     rts
  5550. no_math2:
  5551.     movem.l    (sp)+,a3-a6
  5552.     move.l    d0,d3
  5553.     moveq    #0,d2
  5554.     rts
  5555. *******    TIMESECS("hh:mm:ss")
  5556. L_tts    equ    130
  5557. L130
  5558. tts:    move.l    (a3)+,a0
  5559.     moveq    #0,d0
  5560.     moveq    #0,d1
  5561.     move.w    (a0)+,d0
  5562.     cmp.w    #8,d0
  5563.     bne    ttserr
  5564.     move.b    (a0)+,d0
  5565.     sub.b    #'0',d0
  5566.     mulu    #10,d0
  5567.     move.b    (a0)+,d1
  5568.     sub.b    #'0',d1
  5569.     add.b    d1,d0
  5570.     mulu    #3600,d0
  5571.     move.l    d0,d3
  5572.     add.l    #1,a0
  5573.     moveq    #0,d0
  5574.     moveq    #0,d1
  5575.     move.b    (a0)+,d0
  5576.     sub.b    #'0',d0
  5577.     mulu    #10,d0
  5578.     move.b    (a0)+,d1
  5579.     sub.b    #'0',d1
  5580.     add.b    d1,d0
  5581.     mulu    #60,d0
  5582.     add.l    d0,d3
  5583.     add.l    #1,a0
  5584.     moveq    #0,d0
  5585.     moveq    #0,d1
  5586.     move.b    (a0)+,d0
  5587.     sub.b    #'0',d0
  5588.     mulu    #10,d0
  5589.     move.b    (a0)+,d1
  5590.     sub.b    #'0',d1
  5591.     add.b    d1,d0
  5592.     add.l    d0,d3
  5593. ttsex:    moveq    #0,d2
  5594.     rts
  5595. ttserr:    move.l    #0,d3
  5596.     bra    ttsex
  5597. *******    SECSTIME$(seconds)
  5598. L_stt    equ    131
  5599. L131
  5600. stt:    move.l    (a3)+,d0
  5601.     move.l    d0,d7
  5602.     divu    #3600,d0
  5603.     move.l    d0,d6
  5604.     move.l    d7,d0
  5605.     move.l    d6,d1
  5606.     mulu    #3600,d1
  5607.     sub.l    d1,d0
  5608.     move.l    d0,d7
  5609.     divu    #60,d0
  5610.     move.l    d0,d5
  5611.     mulu    #60,d0
  5612.     sub.l    d0,d7
  5613.     move.l    #8,d0
  5614.     Rbsr    get_mem
  5615.     Dmove    var_buffer,a0
  5616.     move.l    #0,(a0)
  5617.     move.w    #8,(a0)+
  5618.     move.l    d6,d0
  5619.     ext.l    d0
  5620.     bsr    s_bin_to_dec
  5621.     Dmove    var_buffer,a0
  5622.     add.l    #3,a0
  5623.     cmp.b    #0,(a0)
  5624.     bne    len2
  5625.     move.b    -(a0),d0
  5626.     move.b    #'0',(a0)+
  5627.     move.b    d0,(a0)
  5628. len2:    add.l    #1,a0
  5629.     move.b    #':',(a0)+
  5630.     move.l    d5,d0
  5631.     ext.l    d0
  5632.     bsr    s_bin_to_dec
  5633.     Dmove    var_buffer,a0
  5634.     add.l    #6,a0
  5635.     cmp.b    #0,(a0)
  5636.     bne    len2b
  5637.     move.b    -(a0),d0
  5638.     move.b    #'0',(a0)+
  5639.     move.b    d0,(a0)
  5640. len2b:    add.l    #1,a0
  5641.     move.b    #':',(a0)+
  5642.     move.l    d7,d0
  5643.     ext.l    d0
  5644.     bsr    s_bin_to_dec
  5645.     Dmove    var_buffer,a0
  5646.     add.l    #9,a0
  5647.     cmp.b    #0,(a0)
  5648.     bne    len2c
  5649.     move.b    -(a0),d0
  5650.     move.b    #'0',(a0)+
  5651.     move.b    d0,(a0)
  5652. len2c:    add.l    #1,a0
  5653.     Dmove    var_buffer,d3
  5654.     moveq    #2,d2
  5655.     rts
  5656. s_bin_to_dec:
  5657.     ext.l    d0
  5658.     tst.l    d0
  5659.     beq    s_bin_dec6
  5660.     neg.l    d0
  5661.     Dlea    decathlon,a1
  5662.     clr.w    d1
  5663. s_bin_dec3:
  5664.     move.l    (a1)+,d2
  5665.     beq    s_bin_dec6
  5666.     moveq    #-1,d4
  5667. s_bin_dec4:
  5668.     add.l    d2,d0
  5669.     dbgt    d4,s_bin_dec4
  5670.     sub.l    d2,d0
  5671.     addq.w    #1,d4
  5672.     bne    s_bin_dec5
  5673.     tst.w    d1
  5674.     beq    s_bin_dec3
  5675. s_bin_dec5:
  5676.     moveq    #-1,d1
  5677.     neg.b    d4
  5678.     addi.b    #$30,d4
  5679.     move.b    d4,(a0)+
  5680.     bra    s_bin_dec3
  5681. s_bin_dec6:
  5682.     neg.b    d0
  5683.     addi.b    #$30,d0
  5684.     move.b    d0,(a0)+
  5685.     add.l    #2,a2
  5686.     rts
  5687. *******    X Pos(x,y,r,w)
  5688. L_xpo    equ    132
  5689. L132
  5690. xpo:    movem.l    (a3)+,d0-d3
  5691.     move.l    d1,d7
  5692.     movem.l    a3-a6,-(sp)
  5693.     Rbsr    L_openmt
  5694.     cmp.l    #0,a6
  5695.     beq    xno_math
  5696.     jsr    -36(a5)        ;w->float
  5697.     move.l    #$8efa343b,d1    ;degree -> radian
  5698.     jsr    -78(a5)
  5699.     jsr    -42(a6)        ;cos(w)
  5700.     move.l    d0,d4
  5701.     move.l    d7,d0
  5702.     jsr    -36(a5)        ;r->float
  5703.     move.l    d4,d1
  5704.     jsr    -78(a5)        ;r*cos(w)
  5705.     jsr    -30(a5)        ;->int
  5706.     add.l    d3,d0        ;+x
  5707. xno_math:
  5708.     movem.l    (sp)+,a3-a6
  5709.     move.l    d0,d3
  5710.     moveq    #0,d2
  5711.     rts
  5712. *******    Y Pos(x,y,r,w)
  5713. L_ypo    equ    133
  5714. L133
  5715. ypo:    movem.l    (a3)+,d0-d3
  5716.     move.l    d1,d7
  5717.     movem.l    a3-a6,-(sp)
  5718.     Rbsr    L_openmt
  5719.     cmp.l    #0,a6
  5720.     beq    yno_math
  5721.     jsr    -36(a5)        ;w->float
  5722.     move.l    #$8efa343b,d1
  5723.     jsr    -78(a5)
  5724.     jsr    -36(a6)        ;sin(w)
  5725.     move.l    d0,d4
  5726.     move.l    d7,d0
  5727.     jsr    -36(a5)        ;r->float
  5728.     move.l    d4,d1
  5729.     jsr    -78(a5)        ;r*sin(w)
  5730.     jsr    -30(a5)        ;->int
  5731.     add.l    d2,d0        ;+y
  5732. yno_math:
  5733.     movem.l    (sp)+,a3-a6
  5734.     move.l    d0,d3
  5735.     moveq    #0,d2
  5736.     rts
  5737. *******    FLUSH
  5738. L_flush    equ    134
  5739. L134
  5740.     movem.l        a6,-(sp)
  5741.     move.l        4,a6
  5742.     moveq        #0,d1
  5743.     move.l        #99999999,d0
  5744.     jsr        -198(a6)
  5745.     move.l        d0,a0
  5746.     beq.s        .134
  5747.     jsr        -210(a6)
  5748. .134
  5749.     movem.l        (sp)+,a6
  5750.     rts
  5751. tests    equ    135
  5752. L135
  5753.     movem.l    a0-a6/d0-d7,-(sp)
  5754.     Rjsr    L_tests
  5755.     movem.l    (sp)+,a0-a6/d0-d7
  5756.     rts
  5757. *******    COUNT DIRS(pfad$)
  5758. L_countdirs    equ    136
  5759. L136
  5760.     moveq    #0,d7
  5761.     Rbsr    fdcount
  5762.     move.l    d7,d3
  5763.     sub.l    #1,d3
  5764.     rts
  5765. *******    COUNT FILES(pfad$)
  5766. L_countfiles    equ    137
  5767. L137
  5768.     moveq    #0,d6
  5769.     Rbsr    fdcount
  5770.     move.l    d6,d3
  5771.     rts
  5772. fdcount    equ    138
  5773. L138
  5774.     movem.l    a3-a6,-(sp)
  5775.     move.l    DosBase(a5),a6
  5776.     move.l    (a3)+,a0
  5777.     add.l    #2,a0
  5778.     move.l    a0,d1
  5779.     move.l    #-2,d2
  5780.     jsr    -84(a6)        ;lock
  5781.     tst.l    d0
  5782.     beq    fertig
  5783.     move.l    d0,d5
  5784.     move.l    d5,d1
  5785.     Dlea    fib,d2
  5786.     jsr    -102(a6)    ;examine
  5787.     tst.l    d0
  5788.     beq    fertig
  5789.     bsr    zaehl
  5790. loop    move.l    d5,d1
  5791.     Dlea    fib,d2
  5792.     jsr    -108(a6)    ;exnext
  5793.     tst.l    d0
  5794.     beq    fertig
  5795.     bsr    zaehl
  5796.     bra    loop
  5797. fertig    jsr    -132(a6)    ;ioerr
  5798.     moveq    #0,d2
  5799.     movem.l    (sp)+,a3-a6
  5800.     rts
  5801. zaehl    Dlea    fib,a0
  5802.     move.l    4(a0),d0
  5803.     cmp.l    #0,d0
  5804.     bmi    nocount
  5805.     add.l    #1,d7
  5806.     rts
  5807. nocount    add.l    #1,d6
  5808.     rts
  5809. *******    DETAB(string,tabsize)
  5810. L_detab    equ    139
  5811. L139
  5812. detab:    movem.l    a3-a6,-(sp)
  5813.     Rbsr    uninit
  5814.     movem.l    (sp)+,a3-a6
  5815.     move.l    (a3)+,d7
  5816.     cmp.l    #1,d7
  5817.     bge    det
  5818.     move.l    #3,d7
  5819. det:    move.l    (a3)+,a0
  5820.     move.w    (a0)+,d0
  5821.     cmp.w    #0,d0
  5822.     beq    no_para
  5823.     Mlea    p1_jbuffer,a1
  5824.     add.l    #2,a1
  5825.     moveq    #0,d1
  5826. detabl:    move.b    (a0)+,d2
  5827.     cmp.b    #9,d2
  5828.     beq    is_tab
  5829.     cmp.b    #0,d2
  5830.     beq    detend
  5831.     add.w    #1,d1
  5832.     move.b    d2,(a1)+
  5833.     dbra    d0,detabl
  5834. is_tab:    move.w    d1,d3
  5835.     add.w    #1,d3
  5836.     move.l    d3,d4
  5837.     divu    d7,d4
  5838.     mulu    d7,d4
  5839.     sub.w    d4,d3
  5840.     move.w    d7,d6
  5841.     sub.w    d3,d6
  5842.     move.w    d6,d3
  5843.  
  5844.     cmp.w    d3,d7
  5845.     bgt    contab
  5846.     sub.w    d7,d3
  5847.  
  5848. contab:    move.b    #' ',(a1)+
  5849.     add.w    #1,d1
  5850.     dbra    d3,contab
  5851.     dbra    d0,detabl
  5852. no_para    Dlea    leer,d3
  5853. np2:    Rbsr    err_get
  5854.     moveq    #2,d2
  5855.     rts
  5856. detend:
  5857.     move.b    #0,(a1)+
  5858.     Mlea    p1_jbuffer,a0
  5859.     move.w    d1,(a0)
  5860.     move.w    d1,d0
  5861.     Rbsr    getmem
  5862.     cmp.l    #0,d0
  5863.     bne    detabok
  5864.     Mlea    p1_jbuffer,a0
  5865.     move.l    a0,d3
  5866.     bra    np2
  5867. detabok    Dmove    var_buffer,a1
  5868.     Mlea    p1_jbuffer,a0
  5869.     move.w    (a0)+,d0
  5870.     move.w    d0,(a1)+
  5871.     sub.w    #1,d0
  5872. detcop:    move.b    (a0)+,(a1)+
  5873.     dbra    d0,detcop
  5874.     move.b    #0,(a1)+
  5875.     Dmove    var_buffer,d3
  5876.     moveq    #2,d2
  5877.     rts
  5878. *******    GET TAB
  5879. L_gtab    equ    140
  5880. L140
  5881. gtab:    moveq    #0,d3
  5882.     moveq    #0,d2
  5883.     move.w    $400(a5),d3
  5884.     rts
  5885. *******    MOFF CLICK
  5886. L_mclick    equ    141
  5887. L141
  5888.     moveq    #0,d2
  5889.     btst    #6,$bfe001
  5890.     beq    lclick
  5891.     btst    #2,$dff016
  5892.     beq    rclick
  5893.     move.l    #0,d3
  5894.     rts
  5895. lclick:    move.l    #1,d3
  5896.     btst    #2,$dff016
  5897.     bne    lclick2
  5898.     move.l    #3,d3
  5899. lclick2:
  5900.     rts
  5901. rclick:    move.l    #2,d3
  5902.     rts
  5903. *******    MOFF KEY
  5904. L_mkey    equ    142
  5905. L142
  5906.     moveq    #0,d2
  5907.     move.l    #0,d3
  5908.     move.b    $bfec01,d3
  5909. mkeyl    move.b    $bfec01,d0
  5910.     cmp.b    d3,d0
  5911.     beq    mkeyl
  5912.     move.b    #0,$bfec01
  5913.     lsr.b    #1,d3
  5914.     rts
  5915. *******    MULTI OFF
  5916. L_moff    equ    143
  5917. L143
  5918.     movem.l    a3-a6,-(sp)
  5919.     move.l    4,a6
  5920.     jsr    -132(a6)
  5921.     movem.l    (sp)+,a3-a6
  5922.     rts
  5923. *******    MULTI ON
  5924. L_mon    equ    144
  5925. L144
  5926.     movem.l    a3-a6,-(sp)
  5927.     move.l    4,a6
  5928.     jsr    -138(a6)
  5929.     movem.l    (sp)+,a3-a6
  5930.     rts
  5931. *******    DOUBLE CLICK
  5932. L_dclick    equ    145
  5933. L145
  5934.     moveq    #0,d2
  5935.     move.l    #0,d3
  5936.     btst    #6,$bfe001
  5937.     bne    other_mouse
  5938. dmouse    btst    #6,$bfe001
  5939.     beq    dmouse
  5940.     move.l    #3,d1
  5941. here1    move.l    #-1,d0
  5942. dmouse2    btst    #6,$bfe001
  5943.     beq    hok1
  5944.     dbra    d0,dmouse2
  5945.     dbra    d1,here1
  5946.     bra    hok2
  5947. hok1    move.l    #1,d3
  5948. hok2    rts
  5949. other_mouse:
  5950.     btst    #2,$dff016
  5951.     bne    exit_mouse
  5952. dmouse3    btst    #2,$dff016
  5953.     beq    dmouse3
  5954.     move.l    #3,d1
  5955. here2    move.l    #-1,d0
  5956. dmouse4    btst    #2,$dff016
  5957.     beq    hok3
  5958.     dbra    d0,dmouse4
  5959.     dbra    d1,here2
  5960.     bra    exit_mouse
  5961. hok3    move.l    #2,d3
  5962. exit_mouse:
  5963.     rts
  5964. *******    DLED OFF
  5965. L_dledoff    equ    146
  5966. L146
  5967.     move.b    #127,$bfd100
  5968.     move.b    #119,$bfd100
  5969.     move.b    #255,$bfd100+512
  5970.     rts
  5971. *******    DLED OFF
  5972. L_dledon    equ    147
  5973. L147
  5974.     move.b    #127,$bfd100
  5975.     move.b    #119,$bfd100
  5976.     move.b    #0,$bfd100+512
  5977.     rts
  5978. *******    REDUCE DIM array,newdim
  5979. L_reddim    equ    148
  5980. L148
  5981.     move.l    (a3)+,d0
  5982.     move.l    (a3)+,a0
  5983.     add.l    #2,a0
  5984.     move.w    (a0),d1
  5985.     cmp.w    d1,d0
  5986.     bge    red_err
  5987.     move.w    d0,(a0)
  5988.     sub.l    #2,a0
  5989.     Dlea    dimlist,a1
  5990.     Dlea    dimendlist,a2
  5991. dll:    cmp.l    #0,(a1)
  5992.     bne    notlast
  5993.     move.l    a0,(a1)+
  5994.     move.w    d1,(a1)
  5995. red_err    rts
  5996. notlast    add.l    #6,a1
  5997.     cmp.l    a1,a2
  5998.     Rbeq    L_outdim
  5999.     bra    dll
  6000. *******    RESET DIM array
  6001. L_resdim    equ    149
  6002. L149
  6003.     move.l    (a3)+,a0
  6004.     movem.l    a3-a6,-(sp)
  6005.     Dlea    dimlist,a1
  6006.     Dlea    dimendlist,a2
  6007. dll2:    move.l    (a1)+,a3
  6008.     cmp.l    a0,a3
  6009.     bne    notlast2
  6010.     move.w    (a1)+,d0
  6011.     add.l    #2,a0
  6012.     move.w    d0,(a0)
  6013.     movem.l    (sp)+,a3-a6
  6014.     rts
  6015. notlast2:
  6016.     add.l    #2,a1
  6017.     cmp.l    a2,a1
  6018.     Rbeq    L_outdim
  6019.     bra    dll2
  6020. L_outdim    equ    150
  6021. L150
  6022.     moveq    #23,d0
  6023.     Rjmp    L_Error
  6024. *******    ARRAY SWAP array,nr.1,nr2
  6025. L_aswap    equ    151
  6026. L151
  6027.     move.l    (a3)+,d0
  6028.     move.l    (a3)+,d1
  6029.     move.l    (a3)+,a0
  6030.     move.w    2(a0),d2
  6031.     cmp.w    d2,d0
  6032.     Rbge    L_outdim
  6033.     cmp.w    d2,d1
  6034.     Rbge    L_outdim
  6035.     add.l    #6,a0
  6036.     lsl.l    #2,d0
  6037.     lsl.l    #2,d1
  6038.     lea    (a0,d0.l),a1
  6039.     lea    (a0,d1.l),a2
  6040.     move.l    (a1),d1
  6041.     move.l    (a2),d2
  6042.     move.l    d1,(a2)
  6043.     move.l    d2,(a1)
  6044.     rts    
  6045. *******    ARRAY$ CLEAR array
  6046. L_aclear    equ    152
  6047. L152
  6048.     move.l    (a3)+,a0
  6049.     move.w    2(a0),d0
  6050.     add.l    #6,a0
  6051.     movem.l    d0/a0,-(sp)
  6052.     move.w    #4,d0
  6053.     Rbsr    getmem
  6054.     movem.l    (sp)+,d0/a0
  6055.     Dmove    var_buffer,a1
  6056. acl:    move.l    a1,(a0)+
  6057.     dbra    d0,acl
  6058.     rts
  6059. *******    ARRAY CLEAR array
  6060. L_aclear2    equ    153
  6061. L153
  6062.     move.l    (a3)+,a0
  6063.     move.w    2(a0),d0
  6064.     add.l    #6,a0
  6065. acl2:    move.l    #0,(a0)+
  6066.     dbra    d0,acl2
  6067.     rts
  6068. *******    DRAW SEGMENT x,y,xradius,yradius,startwinkel,endwinkel
  6069. L_drawseg    equ    154
  6070. L154
  6071. segm:    move.l    T_RastPort(a5),d0
  6072.     lea    _rastport(pc),a0
  6073.     move.l    d0,(a0)
  6074.     move.l    ScOnAd(a5),a0
  6075.     lea    _sx(pc),a1
  6076.     move.w    $4c(a0),(a1)+
  6077.     move.w    $4e(a0),(a1)
  6078.     lea    EcCurrent(a0),a0
  6079.     move.l    4(a0),a0
  6080.     move.l    FloatBase(a5),a1
  6081.     movem.l    (a3)+,d1-d6
  6082.     bsr    testwinkel
  6083.     movem.l    a3-a6,-(sp)
  6084.     movem.l    a0-a1,-(sp)
  6085.     lea    sprungtab(pc),a1
  6086.     lea    s1e1(pc),a0
  6087.     move.l    a0,(a1)+
  6088.     lea    s1e2(pc),a0
  6089.     move.l    a0,(a1)+
  6090.     lea    s1e3(pc),a0
  6091.     move.l    a0,(a1)+
  6092.     lea    s1e4(pc),a0
  6093.     move.l    a0,(a1)+
  6094.     lea    s2e1(pc),a0
  6095.     move.l    a0,(a1)+
  6096.     lea    s2e2(pc),a0
  6097.     move.l    a0,(a1)+
  6098.     lea    s2e3(pc),a0
  6099.     move.l    a0,(a1)+
  6100.     lea    s2e4(pc),a0
  6101.     move.l    a0,(a1)+
  6102.     lea    s3e1(pc),a0
  6103.     move.l    a0,(a1)+
  6104.     lea    s3e2(pc),a0
  6105.     move.l    a0,(a1)+
  6106.     lea    s3e3(pc),a0
  6107.     move.l    a0,(a1)+
  6108.     lea    s3e4(pc),a0
  6109.     move.l    a0,(a1)+
  6110.     lea    s4e1(pc),a0
  6111.     move.l    a0,(a1)+
  6112.     lea    s4e2(pc),a0
  6113.     move.l    a0,(a1)+
  6114.     lea    s4e3(pc),a0
  6115.     move.l    a0,(a1)+
  6116.     lea    s4e4(pc),a0
  6117.     move.l    a0,(a1)+
  6118.     movem.l    (sp)+,a0-a1
  6119.     movem.l    d0-d7/a0-a6,-(sp)
  6120.     move.w    _sx(pc),d0
  6121.     move.w    _sy(pc),d1
  6122.     sub.w    #1,d0
  6123.     sub.w    #1,d1
  6124.     lea    _x1+2(pc),a0
  6125.     move.w    d0,(a0)
  6126.     lea    _x2+2(pc),a0
  6127.     move.w    d0,(a0)
  6128.     lea    _x3+2(pc),a0
  6129.     move.w    d0,(a0)
  6130.     lea    _x4+2(pc),a0
  6131.     move.w    d0,(a0)
  6132.     lea    _y1+2(pc),a0
  6133.     move.w    d1,(a0)
  6134.     lea    _y2+2(pc),a0
  6135.     move.w    d1,(a0)
  6136.     lea    _y3+2(pc),a0
  6137.     move.w    d1,(a0)
  6138.     lea    _y4+2(pc),a0
  6139.     move.w    d1,(a0)
  6140.     movem.l    (sp)+,d0-d7/a0-a6
  6141.     move.l    a0,a4
  6142.     lea    _mathbase(pc),a0
  6143.     move.l    a1,(a0)+
  6144.     move.l    d2,(a0)+
  6145.     move.l    d1,(a0)+
  6146.     move.l    d4,(a0)+
  6147.     move.l    d3,(a0)+
  6148.     move.l    d6,(a0)+
  6149.     move.l    d5,(a0)+
  6150. segdo:    movem.l    d0-d7/a0-a6,-(sp)
  6151.     lea    ffpname(pc),a1
  6152.     move.l    4,a6
  6153.     jsr    -408(a6)
  6154.     lea    _mathbase(pc),a0
  6155.     move.l    d0,(a0)
  6156.     lea    _gfxname(pc),a1
  6157.     move.l    4,a6
  6158.     jsr    -408(a6)
  6159.     lea    _gfxbase(pc),a0
  6160.     move.l    d0,(a0)
  6161.     movem.l    (sp)+,d0-d7/a0-a6
  6162.     movem.l    a0,-(sp)
  6163.     move.l    _mathbase(pc),a6
  6164.     move.l    startwinkel(pc),d0
  6165.     jsr    -36(a6)
  6166.     move.l    #$8EFA343B,d1
  6167.     jsr    -78(a6)
  6168.     lea    startwinkel(pc),a0
  6169.     move.l    d0,(a0)
  6170.     move.l    endwinkel(pc),d0
  6171.     jsr    -36(a6)
  6172.     move.l    #$8EFA343B,d1
  6173.     jsr    -78(a6)
  6174.     lea    endwinkel(pc),a0
  6175.     move.l    d0,(a0)
  6176.     movem.l    (sp)+,a0
  6177.     move.l    xradius(pc),d7
  6178.     move.l    yradius(pc),d6
  6179.     move.l    xkoord(pc),d5
  6180.     move.l    ykoord(pc),d4
  6181.     move.l    startwinkel(pc),d2
  6182.     move.l    endwinkel(pc),d3
  6183.     bsr    ellipse
  6184.     movem.l    (sp)+,a3-a6
  6185.     lea    _mathbase(pc),a0
  6186.     move.l    #0,(a0)+
  6187.     move.l    #0,(a0)+
  6188.     move.l    #0,(a0)+
  6189.     move.l    #0,(a0)+
  6190.     move.l    #0,(a0)+
  6191.     move.l    #0,(a0)+
  6192.     move.l    #0,(a0)+
  6193.     move.l    #0,(a0)+
  6194.     move.l    #0,(a0)+
  6195.     move.l    #0,(a0)+
  6196.     move.l    #0,(a0)+
  6197.     move.l    #0,(a0)+
  6198.     move.l    #0,(a0)+
  6199.     move.l    #0,(a0)+
  6200.     move.l    #0,(a0)+
  6201.     move.l    #0,(a0)+
  6202.     move.l    #0,(a0)+
  6203.     lea    austab1(pc),a0
  6204.     move.l    #391,d0
  6205. lbunlop    move.l    #0,(a0)+
  6206.     dbra    d0,lbunlop
  6207.     rts
  6208. ellipse    move.l    startwinkel(pc),d2
  6209.     move.l    endwinkel(pc),d3
  6210.     move.l    ykoord(pc),d4
  6211.     move.l    xkoord(pc),d5
  6212.     move.l    yradius(pc),d6
  6213.     move.l    xradius(pc),d7
  6214.     move.l    d2,d0
  6215.     bsr    winkel
  6216.     Bsave    d2,startqua
  6217.     Wsave    d0,startpunkt
  6218.     move.l    d3,d0
  6219.     bsr    winkel
  6220.     Bsave    d2,endqua
  6221.     Wsave    d0,endpunkt
  6222.     move.b    startqua(pc),d0
  6223.     cmpi.b    #1,d0
  6224.     bne    ausschnitt
  6225.     move.w    startpunkt(pc),d0
  6226.     bne    ausschnitt
  6227.     move.b    endqua(pc),d0
  6228.     cmpi.b    #4,d0
  6229.     bne    ausschnitt
  6230.     move.w    endpunkt(pc),d0
  6231.     cmpi.w    #390,d0
  6232.     bne    ausschnitt
  6233.  
  6234.     move.w    #391,d3
  6235.     move.w    #1,d2
  6236.     lea    cos-1(pc),a5
  6237.     lea    bittab(pc),a2
  6238. elloop    moveq    #0,d0
  6239.     moveq    #0,d1
  6240.     move.b    0(a5,d3.w),d0
  6241.     mulu    d7,d0
  6242.     divu    #255,d0
  6243.     Wsave    d0,xoff
  6244.     move.b    0(a5,d2.w),d1
  6245.     mulu    d6,d1
  6246.     divu    #255,d1
  6247.     Wsave    d1,yoff
  6248.     add.w    d5,d0
  6249.     Wsave    d0,xkoord
  6250. _x1    cmpi.w    #639,d0
  6251.     bge    notpunkt1
  6252.     add.w    d4,d1
  6253.     Wsave    d1,ykoord
  6254. _y1    cmpi.w    #255,d1
  6255.     bge    notpunkt1
  6256.     bsr    plot
  6257. notpunkt1    move.w    xkoord(pc),d0
  6258. _x2    cmpi.w    #639,d0
  6259.     bge    notpunkt2
  6260.     move.w    d4,d1
  6261.     sub.w    yoff(pc),d1
  6262.     Wsave    d1,ykoord1
  6263.     cmp.w    #0,d1
  6264.     blt    notpunkt2
  6265.     bsr    plot
  6266. notpunkt2    move.w    d5,d0
  6267.     sub.w    xoff(pc),d0
  6268.     Wsave    d0,xkoord1
  6269.     cmp.w    #0,d0
  6270.     blt    notpunkt3
  6271.     move.w    ykoord(pc),d1
  6272. _y2    cmpi.w    #255,d1
  6273.     bge    notpunkt3
  6274.     bsr    plot
  6275. notpunkt3    move.w    xkoord1(pc),d0
  6276.     blt    notpunkt4
  6277.     move.w    ykoord1(pc),d1
  6278.     blt    notpunkt4
  6279.     bsr    plot
  6280. notpunkt4    addq.w    #1,d2
  6281.     subq.w    #1,d3
  6282.     bne    elloop
  6283.     rts
  6284. ausschnitt    move.l    #391,d0
  6285.     moveq.l    #1,d1
  6286.     moveq    #0,d2
  6287.     lea    cos-1(pc),a2
  6288.     lea    austab1(pc),a5
  6289.     lea    austab2(pc),a6
  6290. ausloop1    moveq    #0,d3
  6291.     move.b    0(a2,d0.w),d3
  6292.     mulu    d7,d3
  6293.     divu    #255,d3
  6294.     move.w    d3,0(a5,d2.w)
  6295.     moveq    #0,d3
  6296.     move.b    0(a2,d1.w),d3
  6297.     mulu    d6,d3
  6298.     divu    #255,d3
  6299.     move.w    d3,0(a6,d2.w)
  6300.     addq.w    #1,d1
  6301.     addq.w    #2,d2
  6302.     subq.w    #1,d0
  6303.     bne    ausloop1
  6304.     lea    bittab(pc),a2
  6305.     move.w    endpunkt(pc),d0
  6306.     cmpi.w    #1,d0
  6307.     bhi    weiter1
  6308.     Wsave    #2,endpunkt
  6309. weiter1    moveq    #0,d0
  6310.     moveq    #0,d1
  6311.     move.b    startqua(pc),d0
  6312.     subi.b    #1,d0
  6313.     mulu    #16,d0
  6314.     move.b    endqua(pc),d1
  6315.     subi.b    #1,d1
  6316.     mulu    #4,d1
  6317.     add.b    d1,d0
  6318.     lea    sprungtab(pc),a0
  6319.     add.l    a0,d0
  6320.     move.l    d0,a0
  6321.     move.l    (a0),a0
  6322.     jmp    (a0)
  6323.     nop
  6324. s1e1    move.w    startpunkt(pc),d0
  6325.     cmp.w    endpunkt(pc),d0
  6326.     blt    s1e11
  6327.     move.w    #391,d1
  6328.     bsr    erster
  6329.     move.w    #1,d0
  6330.     bra    s2e11
  6331. s1e11    move.w    endpunkt(pc),d1
  6332.     bra    erster
  6333. s1e2    move.w    startpunkt(pc),d0
  6334. s1e22    move.w    #391,d1
  6335.     bsr    erster
  6336.     move.w    #1,d0
  6337.     move.w    endpunkt(pc),d1
  6338.     bra    zweiter
  6339. s1e3    move.w    startpunkt(pc),d0
  6340. s1e333    move.w    #391,d1
  6341.     bsr    erster
  6342.     move.w    #1,d0
  6343. s1e33    move.w    #391,d1
  6344.     bsr    zweiter
  6345.     move.w    #1,d0
  6346.     move.w    endpunkt(pc),d1
  6347.     bra    dritter
  6348. s1e4    move.w    startpunkt(pc),d0
  6349. s1e4444    move.w    #391,d1
  6350.     bsr    erster
  6351.     move.w    #1,d0
  6352. s1e44    move.w    #391,d1
  6353.     bsr    zweiter
  6354.     move.w    #1,d0
  6355. s1e444    move.w    #391,d1
  6356.     bsr    dritter
  6357.     move.w    #1,d0
  6358.     move.w    endpunkt(pc),d1
  6359.     bra    vierter
  6360. s2e1    move.w    startpunkt(pc),d0
  6361. s2e11    move.w    #391,d1
  6362.     bsr    zweiter
  6363.     move.w    #1,d0
  6364. s2e111    move.w    #391,d1
  6365.     bsr    dritter
  6366.     move.w    #1,d0
  6367. s2e1111    move.w    #391,d1
  6368.     bsr    vierter
  6369.     move.w    #1,d0
  6370.     move.w    endpunkt(pc),d1
  6371.     bra    erster
  6372. s2e2    move.w    startpunkt(pc),d0
  6373.     cmp.w    endpunkt(pc),d0
  6374.     blt    s2e22
  6375.     move.w    #391,d1
  6376.     bsr    zweiter
  6377.     move.w    #1,d0
  6378.     bra    s3e22
  6379. s2e22    move.w    endpunkt(pc),d1
  6380.     bra    zweiter
  6381. s2e3    move.w    startpunkt(pc),d0
  6382.     bra    s1e33
  6383. s2e4    move.w    startpunkt(pc),d0
  6384.     bra    s1e44
  6385. s3e1    move.w    startpunkt(pc),d0
  6386.     bra    s2e111
  6387. s3e2    move.w    startpunkt(pc),d0
  6388. s3e22    move.w    #391,d1
  6389.     bsr    dritter
  6390.     move.w    #1,d0
  6391. s3e222    move.w    #391,d1
  6392.     bsr    vierter
  6393.     move.w    #1,d0
  6394.     bra    s1e22
  6395. s3e3    move.w    startpunkt(pc),d0
  6396.     cmp.w    endpunkt(pc),d0
  6397.     blt    s3e33
  6398.     move.w    #391,d1
  6399.     bsr    dritter
  6400.     move.w    #1,d0
  6401.     bra    s4e33
  6402. s3e33    move.w    endpunkt(pc),d1
  6403.     bra    dritter
  6404. s3e4    move.w    startpunkt(pc),d0
  6405.     bra    s1e444
  6406. s4e1    move.w    startpunkt(pc),d0
  6407.     bra    s2e1111
  6408. s4e2    move.w    startpunkt(pc),d0
  6409.     bra    s3e222
  6410. s4e3    move.w    startpunkt(pc),d0
  6411. s4e33    move.w    #391,d1
  6412.     bsr    vierter
  6413.     move.w    #1,d0
  6414.     bra    s1e333
  6415. s4e4    move.w    startpunkt(pc),d0
  6416.     cmp.w    endpunkt(pc),d0
  6417.     blt    s4e44
  6418.     move.w    #391,d1
  6419.     bsr    vierter
  6420.     move.w    #1,d0
  6421.     bra    s1e4444
  6422. s4e44    move.w    endpunkt(pc),d1
  6423.     bra    vierter
  6424. erster    move.w    #391,d2
  6425.     sub.w    d0,d2
  6426.     Wsave    d2,zaehl1
  6427.     move.w    #391,d2
  6428.     sub.w    d1,d2
  6429.     Wsave    d2,zaehl2
  6430. loopq1    move.w    zaehl2(pc),d2
  6431.     lsl    #1,d2
  6432.     move.w    0(a5,d2.w),d0
  6433.     add.w    d5,d0
  6434. _x3    cmpi.w    #639,d0
  6435.     bge    noeins
  6436.     move.w    0(a6,d2.w),d3
  6437.     move.w    d4,d1
  6438.     sub.w    d3,d1
  6439.     blt    noeins
  6440.     bsr    plot
  6441. noeins    movem.l    a0,-(sp)
  6442.     lea    zaehl2(pc),a0
  6443.     add.w    #1,(a0)
  6444.     movem.l    (sp)+,a0
  6445.     move.w    zaehl1(pc),d0
  6446.     cmp.w    zaehl2(pc),d0
  6447.     bne    loopq1
  6448.     rts
  6449. zweiter    Wsave2    d1,d0,zaehl1,zaehl2
  6450. loopq2    move.w    zaehl2(pc),d2
  6451.     lsl    #1,d2
  6452.     move.w    0(a5,d2.w),d0
  6453.     add.w    d5,d0
  6454. _x4    cmpi.w    #639,d0
  6455.     bge    nozwei
  6456.     move.w    0(a6,d2.w),d1
  6457.     add.w    d4,d1
  6458. _y3    cmpi.w    #255,d1
  6459.     bge    nozwei
  6460.     bsr    plot
  6461. nozwei    movem.l    a0,-(sp)
  6462.     lea    zaehl2(pc),a0
  6463.     addq.w    #1,(a0)
  6464.     movem.l    (sp)+,a0
  6465.     move.w    zaehl1(pc),d0
  6466.     cmp.w    zaehl2(pc),d0
  6467.     bne    loopq2
  6468.     rts
  6469. dritter    move.w    #391,d2
  6470.     sub.w    d0,d2
  6471.     Wsave    d2,zaehl1
  6472.     move.w    #391,d2
  6473.     sub.w    d1,d2
  6474.     Wsave    d2,zaehl2
  6475. loopq3    move.w    zaehl2(pc),d2
  6476.     lsl    #1,d2
  6477.     move.w    0(a5,d2.w),d3
  6478.     move.w    d5,d0
  6479.     sub.w    d3,d0
  6480.     blt    nodrei
  6481.     move.w    0(a6,d2.w),d1
  6482.     add.w    d4,d1
  6483. _y4    cmpi.w    #255,d1
  6484.     bge    nodrei
  6485.     bsr    plot
  6486. nodrei    movem.l    a0,-(sp)
  6487.     lea    zaehl2(pc),a0
  6488.     addq.w    #1,(a0)
  6489.     movem.l    (sp)+,a0
  6490.     move.w    zaehl1(pc),d0
  6491.     cmp.w    zaehl2(pc),d0
  6492.     bne    loopq3
  6493.     rts
  6494. vierter    Wsave2    d1,d0,zaehl1,zaehl2
  6495. loopq4    move.w    zaehl2(pc),d2
  6496.     lsl    #1,d2
  6497.     move.w    0(a5,d2.w),d3
  6498.     move.w    d5,d0
  6499.     sub.w    d3,d0
  6500.     blt    novier
  6501.     move.w    0(a6,d2.w),d3
  6502.     move.w    d4,d1
  6503.     sub.w    d3,d1
  6504.     blt    novier
  6505.     bsr    plot
  6506. novier    movem.l    a0,-(sp)
  6507.     lea    zaehl2(pc),a0
  6508.     addq.w    #1,(a0)
  6509.     movem.l    (sp)+,a0
  6510.     move.w    zaehl1(pc),d0
  6511.     cmp.w    zaehl2(pc),d0
  6512.     bne    loopq4
  6513.     rts
  6514. winkel    move.l    d0,a5
  6515.     move.l    #$80000043,d1
  6516.     move.l    _mathbase(pc),a6
  6517.     jsr    -78(a6)
  6518.     move.l    #$C90FDA43,d1
  6519.     jsr    -84(a6)
  6520.     jsr    -30(a6)
  6521.     move.l    d0,a3
  6522.     addi.b    #1,d0
  6523.     move.b    d0,d2
  6524.     move.l    a3,d0
  6525.     jsr    -36(a6)
  6526.     move.l    #$C90FDA41,d1
  6527.     jsr    -78(a6)
  6528.     move.l    d0,d1
  6529.     move.l    a5,d0
  6530.     jsr    -72(a6)
  6531.     move.l    #$C3800049,d1
  6532.     jsr    -78(a6)
  6533.     move.l    #$C90FDA41,d1
  6534.     jsr    -84(a6)
  6535.     jsr    -30(a6)
  6536.     rts
  6537. plot    movem.l    d0-d7/a0-a6,-(sp)
  6538.     ext.l    d0
  6539.     ext.l    d1
  6540.     move.l    _rastport(pc),a1
  6541.     movem.l    d0-d1/a1,-(sp)
  6542.     move.l    _gfxbase(pc),a6
  6543.     jsr    -324(a6)
  6544.     movem.l    (sp)+,d0-d1/a1
  6545.     jsr    -240(a6)
  6546.     movem.l    (sp)+,d0-d7/a0-a6
  6547.     rts
  6548. testwinkel:
  6549.     cmp.l    #0,d1
  6550.     bmi    add360
  6551.     cmp.l    #360,d1
  6552.     bgt    sub360
  6553.     cmp.l    #0,d2
  6554.     bmi    add3602
  6555.     cmp.l    #360,d2
  6556.     bgt    sub3602
  6557.     rts
  6558. add360    add.l    #360,d1
  6559.     bra    testwinkel
  6560. add3602    add.l    #360,d2
  6561.     bra    testwinkel
  6562. sub360    sub.l    #360,d1
  6563.     bra    testwinkel
  6564. sub3602    sub.l    #360,d2
  6565.     bra    testwinkel
  6566. _rastport
  6567.     dc.l    0
  6568. _gfxbase
  6569.     dc.l    0
  6570. _gfxname
  6571.     dc.b    'graphics.library',0
  6572.     even
  6573. sprungtab
  6574.     dc.l    0,0,0,0
  6575.     dc.l    0,0,0,0
  6576.     dc.l    0,0,0,0
  6577.     dc.l    0,0,0,0
  6578. ffpname:
  6579.     dc.b    'mathffp.library',0
  6580.     even
  6581. _sx    dc.w    0
  6582. _sy    dc.w    0
  6583. _mathbase
  6584.     dc.l    0
  6585. startwinkel
  6586.     dc.l    0
  6587. endwinkel
  6588.     dc.l    0
  6589. xradius    dc.l    0
  6590. yradius    dc.l    0
  6591. xkoord    dc.l    0
  6592. ykoord    dc.l    0
  6593. xkoord1    dc.l    0
  6594. ykoord1    dc.l    0
  6595. xoff    dc.l    0
  6596. yoff    dc.l    0
  6597. startqua
  6598.     dc.l    0
  6599. endqua    dc.l    0
  6600. startpunkt
  6601.     dc.l    0
  6602. endpunkt
  6603.     dc.l    0
  6604. zaehl1    dc.l    0
  6605. zaehl2    dc.l    0
  6606.     cnop    0,4
  6607. cos    dc.b    0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,$10,$11,$12,$13
  6608.     dc.b    $14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F,$20,$21,$22,$23,$24,$25,$26,$27
  6609.     dc.b    $28,$29,$2A,$2B,$2C,$2D,$2E,$2F,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B
  6610.     dc.b    $3C,$3D,$3E,$3F,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F
  6611.     dc.b    $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$5E,$5F,$60,$61,$62
  6612.     dc.b    $63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6D,$6E,$6F,$70,$71,$72,$73,$74,$75
  6613.     dc.b    $76,$77,$78,$78,$79,$7A,$7B,$7C,$7D,$7E,$7F,$80,$80,$81,$82,$83,$84,$85,$86,$87
  6614.     dc.b    $87,$88,$89,$8A,$8B,$8C,$8D,$8D,$8E,$8F,$90,$91,$92,$93,$93,$94,$95,$96,$97,$98
  6615.     dc.b    $98,$99,$9A,$9B,$9C,$9C,$9D,$9E,$9F,$A0,$A0,$A1,$A2,$A3,$A4,$A4,$A5,$A6,$A7,$A7
  6616.     dc.b    $A8,$A9,$AA,$AB,$AB,$AC,$AD,$AE,$AE,$AF,$B0,$B1,$B1,$B2,$B3,$B3,$B4,$B5,$B6,$B6
  6617.     dc.b    $B7,$B8,$B8,$B9,$BA,$BB,$BB,$BC,$BD,$BD,$BE,$BF,$BF,$C0,$C1,$C1,$C2,$C3,$C3,$C4
  6618.     dc.b    $C5,$C5,$C6,$C7,$C7,$C8,$C8,$C9,$CA,$CA,$CB,$CC,$CC,$CD,$CD,$CE,$CF,$CF,$D0,$D0
  6619.     dc.b    $D1,$D2,$D2,$D3,$D3,$D4,$D4,$D5,$D6,$D6,$D7,$D7,$D8,$D8,$D9,$D9,$DA,$DA,$DB,$DB
  6620.     dc.b    $DC,$DD,$DD,$DE,$DE,$DF,$DF,$E0,$E0,$E0,$E1,$E1,$E2,$E2,$E3,$E3,$E4,$E4,$E5,$E5
  6621.     dc.b    $E6,$E6,$E6,$E7,$E7,$E8,$E8,$E9,$E9,$E9,$EA,$EA,$EB,$EB,$EB,$EC,$EC,$ED,$ED,$ED
  6622.     dc.b    $EE,$EE,$EE,$EF,$EF,$EF,$F0,$F0,$F0,$F1,$F1,$F1,$F2,$F2,$F2,$F3,$F3,$F3,$F4,$F4
  6623.     dc.b    $F4,$F4,$F5,$F5,$F5,$F6,$F6,$F6,$F6,$F7,$F7,$F7,$F7,$F8,$F8,$F8,$F8,$F9,$F9,$F9
  6624.     dc.b    $F9,$F9,$FA,$FA,$FA,$FA,$FA,$FB,$FB,$FB,$FB,$FB,$FB,$FC,$FC,$FC,$FC,$FC,$FC,$FC
  6625.     dc.b    $FD,$FD,$FD,$FD,$FD,$FD,$FD,$FD,$FD,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$FE
  6626.     dc.b    $FE,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$FE
  6627.     cnop    0,4
  6628. bittab    dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6629.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6630.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6631.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6632.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6633.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6634.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6635.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6636.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6637.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6638.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6639.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6640.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6641.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6642.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6643.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6644.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6645.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6646.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6647.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6648.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6649.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6650.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6651.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6652.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6653.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6654.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6655.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6656.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6657.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6658.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6659.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6660.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6661.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6662.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6663.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6664.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6665.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6666.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6667.     dc.b    $80,$40,$20,$10,8,4,2,1,$80,$40,$20,$10,8,4,2,1
  6668.     cnop    0,4
  6669. austab1    ds.w    392
  6670. austab2    ds.w    392
  6671.     dc.l    0
  6672. *******    error routines
  6673. L155
  6674. L156
  6675.  
  6676. L157
  6677.  
  6678. ******* TITLE MESSAGE
  6679. C_Title:
  6680.     dc.b    "AMOSPro JD_Extension V "
  6681.     Version
  6682.     dc.b    0,"$VER: "
  6683.     Version
  6684.     dc.b    0
  6685.     even
  6686.  
  6687. ******* END OF THE EXTENSION
  6688. C_End:    dc.w    0
  6689.     even
  6690.     
  6691.